C# 设置Excel电子表格列属性问题
我试图使用OpenXML框架在Excel电子表格中设置默认列宽,结果我得到了一个坏文件。这是代码C# 设置Excel电子表格列属性问题,c#,excel,openxml,C#,Excel,Openxml,我试图使用OpenXML框架在Excel电子表格中设置默认列宽,结果我得到了一个坏文件。这是代码 private void initSpreadsheetDocument() { // Add a WorkbookPart to the spreadsheet document. WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart(); workbookpart.Workbook = new Wo
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);
// 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();
}
private void initSpreadsheetDocument()
{
//将WorkbookPart添加到电子表格文档中。
WorkbookPart WorkbookPart=电子表格文档.AddWorkbookPart();
workbookpart.工作簿=新工作簿();
var sheetData=新的sheetData();
var properties=newsheetformatproperties{DefaultColumnWidth=25D};
工作表=新工作表();
工作表.AppendChild(sheetData);
//下面是损坏文件的一行代码
//如果没有它,文件将正确生成
工作表.AppendChild(属性);
//将工作表部件添加到工作簿部件。
WorksheetPart WorksheetPart=workbookpart.AddNewPart();
工作表部分工作表=工作表;
//初始表
板材存储=新板材();
defaultSheet=新工作表();
defaultSheet.Id=电子表格文档.WorkbookPart.GetIdOfPart(工作表部件);
defaultSheet.SheetId=1;
defaultSheet.Name=默认的工作表名称;
sheetsStorage.AppendChild(默认页);
电子表格文档.工作簿部件.工作簿.附件子项(表格存储);
spreadsheetDocument.WorkbookPart.Workbook.Save();
}
我试图使用“Append”和“AppendChild”,但结果是一样的
有人对如何解决这个问题有什么看法吗
好的。原因是SheetFormatProperties对象具有必需的属性defaultRowHeight。您甚至可以指定defaultRowHeight=0,但它必须显示。所以使用
SheetFormatProperties sheetFormatProperties1 = new SheetFormatProperties(){ DefaultColumnWidth = 12.75D, DefaultRowHeight = 0D};
快乐=)СаааУааааааа 我无法检查我的建议,但尝试使用工作表.Append(properties);然后是工作表。追加(sheetData)。按照这个顺序。我刚刚检查了这个解决方案-应用属性的顺序并不重要。无论如何,谢谢你的回复谢谢你的时间-这正是我要找的!Героям Слава!我不知道这个问题是关于什么的。Героям слава!