如何在 OpenXml 中设置一行(或整行)中多个单元格的背景?
看了几篇文章:
我仍然无法让它工作。
我的任务实际上乍一看似乎更容易一些,并且与那些文章中写的有点不同。上面提到的教程主要展示了如何创建一个新文档并设置它的样式。虽然我需要更改现有样式的样式。
也就是说,我有一个现有的xlsx文档(报告模板)。我用必要的值填充报告(由于SO open xml excel 读取单元格值和MSDN Working with sheet (Open XML SDK))。但接下来我需要用红色背景标记几行。
我不确定是否使用CellStyle
或是否应该使用CellFormat
或其他东西......这就是我现在所做的:
SpreadsheetDocument doc = SpreadsheetDocument.Open("ole.xlsx", true);
Sheet sheet = (Sheet)doc.WorkbookPart
.Workbook
.Sheets
.FirstOrDefault();
WorksheetPart worksheetPart = (WorksheetPart)doc.WorkbookPart
.GetPartById(sheet.Id);
Worksheet worksheet = worksheetPart.Worksheet;
CellStyle cs = new CellStyle();
cs.Name = StringValue.FromString("Normal");
cs.FormatId = 0;
cs.BuiltinId = 0;
//where are the style values?
WorkbookStylesPart wbsp = doc.WorkbookPart
.GetPartsOfType<WorkbookStylesPart>()
.FirstOrDefault();
wbsp.Stylesheet.CellStyles.Append(cs);
wbsp.Stylesheet.Save();
Cell cell = GetCell(worksheet, "A", 20);
cell.StyleIndex = 1U;//get the new cellstyle index somehow
doc.Close();
实际上,我将非常感谢一个更轻量级和简单的示例,说明如何设置单元格A20
或范围 from A20
to的样式J20
。或者可能是指向更多连续教程的链接。