如何使用C#隐藏OpenXML电子表格中的列?

我用C#使用DocumentFormat.OpenXML。 我如何隐藏特定的列?
代码的一部分:

using (SpreadsheetDocument sDocument = SpreadsheetDocument.Open(resultFileName, true)) { WorkbookPart workbookPart = sDocument.WorkbookPart; WorksheetPart worksheetPart = workbookPart.AddNewPart<WorksheetPart>(); var relId = workbookPart.GetIdOfPart(worksheetPart); GenerateWorksheetPartContent(worksheetPart, data, templateSheet); var columns = worksheetPart.Worksheet.Descendants<Column>(); <-- Empty int[] colomnsToHide = new int[] { 3, 8, 16, 17, 18 }; foreach (int i in colomnsToHide) { columns[i].Hidden = true; } } 

templateSheet – xlsx-template中的SheetData。
数据 – 要插入的数据。

有什么build议么?

只有在存在一些自定义列行为(如大小,隐藏或分组)时,才会将列后代添加到工作表部分。 你可以像这样显式添加列定义:

 Columns columns = new Columns(); // Min & Max refer to the 1-indexed column ordinal Column column3 = new Column(){ Min = 3, Max = 3, Width = 0, CustomWidth = true, Hidden = true }; Column column8 = new Column(){ Min = 8, Max = 8, Width = 0, CustomWidth = true, Hidden = true }; // ... repeat for each column columns.Append(column3); columns.Append(column8); worksheetPart.Append(columns); 

为每个你想隐藏的列做这个