作者:君君6789_903 | 来源:互联网 | 2023-05-21 17:00
我正在尝试使用OpenXmlWriter(SAX)编写带有样式的Excel Xlsx电子表格.
我能够创建包含行和列的文件(将它们填充为字符串).我正在寻找一个简单的代码,如何使用粗体字形成第一行(标题).
我没有开始的模板文件,因为文件是动态的.
我找到了一些关于如何添加WorkbookStylesPart的文章,但他们都在使用DOM.由于我需要编写大量的行,因此DOM不适用于我.
谁能指出我正确的方向?使用WriteStartElement和OpenXmlAttribute时,将标题行添加为粗体的简单代码.
谢谢,odansky
1> Kavindu Doda..:
添加StyleSheet是一次性工作.之后,您只需在创建新单元格时简单地引用已定义的样式ID.
热门将样式表添加到电子表格[使用粗体文字样式]
private WorkbookStylesPart AddStyleSheet(SpreadsheetDocument spreadsheet)
{
WorkbookStylesPart stylesheet = spreadsheet.WorkbookPart.AddNewPart();
Stylesheet workbookstylesheet = new Stylesheet();
Font font0 = new Font(); // Default font
Font font1 = new Font(); // Bold font
Bold bold = new Bold();
font1.Append(bold);
Fonts fOnts= new Fonts(); //
fonts.Append(font0);
fonts.Append(font1);
//
Fill fill0 = new Fill(); // Default fill
Fills fills = new Fills(); //
fills.Append(fill0);
//
Border border0 = new Border(); // Defualt border
Borders borders = new Borders(); //
borders.Append(border0);
//
CellFormat cellformat0 = new CellFormat() { FOntId= 0, FillId = 0, BorderId = 0 }; // Default style : Mandatory | Style ID =0
CellFormat cellformat1 = new CellFormat() { FOntId= 1 }; // Style with Bold text ; Style ID = 1
//
CellFormats cellformats = new CellFormats();
cellformats.Append(cellformat0);
cellformats.Append(cellformat1);
// Append FONTS, FILLS , BORDERS & CellFormats to stylesheet
workbookstylesheet.Append(fonts);
workbookstylesheet.Append(fills);
workbookstylesheet.Append(borders);
workbookstylesheet.Append(cellformats);
// Finalize
stylesheet.Stylesheet = workbookstylesheet;
stylesheet.Stylesheet.Save();
return stylesheet;
}
现在,当您创建单元格时,请执行以下操作以引用粗体文本
Cell c1 = new Cell(){StyleIndex = Convert.ToUInt32(1)}; // Assign our defined style with Bold text ; Style ID 1
附加说明:添加电子表格的工作簿部分后,需要添加样式表.
有关SAX方法的更多信息:您可以在首次创建要打开的模板文件时定义样式以插入数据单元格.添加数据单元格时,请使用ID引用已定义的样式.
一个简单的工作电子表格(MSDN)
public static void CreateSpreadsheetWorkbook(string filepath)
{
// Create a spreadsheet document by supplying the filepath.
// By default, AutoSave = true, Editable = true, and Type = xlsx.
SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(filepath, SpreadsheetDocumentType.Workbook);
// Add a WorkbookPart to the document.
WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart();
workbookpart.Workbook = new Workbook();
AddStyleSheet(spreadsheetDocument) // <== Adding stylesheet using above function
// Add a WorksheetPart to the WorkbookPart.
WorksheetPart worksheetPart = workbookpart.AddNewPart();
worksheetPart.Worksheet = new Worksheet(new SheetData());
// Add Sheets to the Workbook.
Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild(new Sheets());
// Append a new worksheet and associate it with the workbook.
Sheet sheet = new Sheet() { Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" };
sheets.Append(sheet);
workbookpart.Workbook.Save();
// Close the document.
spreadsheetDocument.Close();
}