在OPEN XML中为单元格设置Font.Bold和Column.Width

我一直使用OPEN XML创build一个可以下载的电子表格。 我想设置列的宽度,并将标题更改为粗体。 我已经使用Office.Interop.Excel完成了这个工作,但是我正在努力处理这种格式。 我的代码如下,你可以看到我已经设置了一个字体,但一直无法将其分配给我的电子表格,我收到消息说不能分配给一棵树。

SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(fileName, SpreadsheetDocumentType.Workbook); //Open(fileName, true); try { WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart(); workbookpart.Workbook = new DocumentFormat.OpenXml.Spreadsheet.Workbook(); WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>(); worksheetPart.Worksheet = new DocumentFormat.OpenXml.Spreadsheet.Worksheet(new SheetData()); DocumentFormat.OpenXml.Spreadsheet.Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild<DocumentFormat.OpenXml.Spreadsheet.Sheets>(new DocumentFormat.OpenXml.Spreadsheet.Sheets()); Sheet sheet = new Sheet() { Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart), SheetId = 1, Name = "Models" }; sheets.Append(sheet); DocumentFormat.OpenXml.Spreadsheet.Font boldFont = new DocumentFormat.OpenXml.Spreadsheet.Font(); Bold bFontBold = new Bold(); boldFont.Append(bFontBold); DocumentFormat.OpenXml.Spreadsheet.Worksheet worksheet = new DocumentFormat.OpenXml.Spreadsheet.Worksheet(); SheetData sheetData = new SheetData(); ........ Row row = new Row(); Cell cell = new Cell() { CellReference = "A" + (intI + 1), DataType = CellValues.String, CellValue = new CellValue(ModelBookrowDetail[0]) }; row.Append(cell); Cell cell2 = new Cell() { CellReference = "B" + (intI + 1), DataType = CellValues.String, CellValue = new CellValue(ModelBookrowDetail[1]) }; row.Append(cell2); ......... sheetData.Append(row); } worksheet.Append(sheetData); worksheetPart.Worksheet = worksheet; spreadsheetDocument.Close(); } catch { spreadsheetDocument.Close(); } 

我不知道你是如何使用OpenXml的。 我可能会build议查看ClosedXml。 直到现在为我节省了大量的工时。 它只有一个缺点,那就是它不像OpenXml那样pipe理Word文档。

ClosedXml是一个更加面向对象的开放源代码库,与我在OpenXml中经历的相比,它有更好的文档logging。

你可以在这里findClosedXml: https ://closedxml.codeplex.com/documentation

祝你好运

标记