, ClosedXML GradientFill, WorkbookStylesPart OpenXML ClosedXML,
.xlsx
public ActionResult XLSX()
{
System.IO.Stream spreadsheetStream = new System.IO.MemoryStream();
XLWorkbook workbook = new XLWorkbook();
IXLWorksheet worksheet = workbook.Worksheets.Add("GradientFillExample");
worksheet.Cell(1, 1).SetValue("example").Style.Fill.SetBackgroundColor(XLColor.FromHtml("#08F47B"));
workbook.SaveAs(spreadsheetStream);
- , WorkbookStylesPart , ... OpenXML ( )
SpreadsheetDocument package = SpreadsheetDocument.Open(spreadsheetStream, true);
WorkbookPart wbPart = package.GetPartsOfType<WorkbookPart>().FirstOrDefault();
WorkbookStylesPart wbStylePart = wbPart.GetPartsOfType<WorkbookStylesPart>().FirstOrDefault();
Stylesheet stylesheet = wbStylePart.Stylesheet;
, .
OpenXmlElement oldFill = stylesheet.Fills.FirstOrDefault(f => f.OuterXml.Contains("08F47B"));
if (oldFill != null)
{
GradientFill gradientFill = new GradientFill() { Degree = 0 };
gradientFill.Append(new GradientStop() { Position = 0D, Color = new Color() { Rgb = "FF00FF00" } });
gradientFill.Append(new GradientStop() { Position = 1D, Color = new Color() { Rgb = "FFFFFFFF" } });
oldFill.ReplaceChild(gradientFill, oldFill.FirstChild);
}
package.Close();
, ...
spreadsheetStream.Position = 0;
return new FileStreamResult(spreadsheetStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { FileDownloadName = "gradfillexample.xlsx" };
}
. , :
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
using ClosedXML.Excel;
: , 0, 90, 180, 270 ( ), ,
GradientFill gradientFill = new GradientFill() { Degree = 354 };
gradientFill.Append(new GradientStop() { Position = 0D, Color = new Color() { Rgb = "FF00FF00" } });
gradientFill.Append(new GradientStop() { Position = 0.49D, Color = new Color() { Rgb = "FF00FF00" } });
gradientFill.Append(new GradientStop() { Position = 0.51D, Color = new Color() { Rgb = "FFFFFFFF" } });
gradientFill.Append(new GradientStop() { Position = 1D, Color = new Color() { Rgb = "FFFFFFFF" } });
Excel ( Excel Viewer) ( , ), Excel, , .