设置Excel电子表格列属性问题

我试图使用OpenXML框架在Excel电子表格中设置默认列宽,结果我得到了破损的文件。 这里是代码

private void initSpreadsheetDocument() { // Add a WorkbookPart to the spreadsheet document. WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart(); workbookpart.Workbook = new Workbook(); var sheetData = new SheetData(); var properties = new SheetFormatProperties { DefaultColumnWidth = 25D }; Worksheet worksheet = new Worksheet(); worksheet.AppendChild(sheetData); // here is line of code that corrupt file // without it - file is being generated properly worksheet.AppendChild(properties); ![enter image description here][1] // Add a WorksheetPart to the WorkbookPart. WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>(); worksheetPart.Worksheet = worksheet; // Init sheets sheetsStorage = new Sheets(); defaultSheet = new Sheet(); defaultSheet.Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(worksheetPart); defaultSheet.SheetId = 1; defaultSheet.Name = DEFAULT_SHEET_NAME; sheetsStorage.AppendChild(defaultSheet); spreadsheetDocument.WorkbookPart.Workbook.AppendChild(sheetsStorage); spreadsheetDocument.WorkbookPart.Workbook.Save(); } 

这里是错误截图

我试图使用“追加”与“AppendChild”,但结果是一样的

有没有人有一个观点如何整理出来?

好的。 原因是SheetFormatProperties对象具有必需的属性defaultRowHeight。 你甚至可以指定defaultRowHeight = 0,但它必须出现。 所以使用

 SheetFormatProperties sheetFormatProperties1 = new SheetFormatProperties(){ DefaultColumnWidth = 12.75D, DefaultRowHeight = 0D}; 

并开心=)СлаваУкраине!