尝试隐藏列时 OpenXML Excel 文件损坏

OpenXML Excel file corrupted when trying to hide a column

我一直在努力理解为什么我的 excel 文件会损坏。我试图隐藏某些列(在本例中为 A 列)。使用 OpenXML Productivity Tool,我查看了代码构建,这是输出:

Worksheet worksheet1 = new Worksheet();
Columns columns1 = new Columns();
Column column1 = new Column(){ Min = (UInt32Value)1U, Max = (UInt32Value)1U, Width = 0D, Hidden = true, CustomWidth = true };
columns1.Append(column1);
SheetFormatProperties sheetFormatProperties1 = new SheetFormatProperties(){ DefaultRowHeight = 15D, DyDescent = 0.25D };
SheetData sheetData1 = new SheetData();
Row row1 = new Row(){ RowIndex = (UInt32Value)1U };
Cell cell1 = new Cell(){ CellReference = "A1", DataType = CellValues.String };
CellValue cellValue1 = new CellValue();
cellValue1.Text = "Table Id";
cell1.Append(cellValue1);
Cell cell2 = new Cell(){ CellReference = "B1", DataType = CellValues.String };
CellValue cellValue2 = new CellValue();
cellValue2.Text = "Table";
cell2.Append(cellValue2);
row1.Append(cell1);
row1.Append(cell2);
Row row2 = new Row(){ RowIndex = (UInt32Value)2U };
Cell cell6 = new Cell(){ CellReference = "A2", DataType = CellValues.String };
CellValue cellValue6 = new CellValue();
cellValue6.Text = "1";
cell6.Append(cellValue6);
Cell cell7 = new Cell(){ CellReference = "B2", DataType = CellValues.String };
CellValue cellValue7 = new CellValue();
cellValue7.Text = "Options";
cell7.Append(cellValue7);
row2.Append(cell6);
row2.Append(cell7);
sheetData1.Append(row1);
sheetData1.Append(row2);
worksheet1.Append(columns1);
worksheet1.Append(sheetFormatProperties1);
worksheet1.Append(sheetData1);
part.Worksheet

正如所见,这基本上是一个包含两行的示例。 A 列应该被隐藏,但是当打开 XML 文件时它似乎已损坏。关于我在这里可能缺少什么的任何想法?我尝试使用 Microsoft 文档获取特定列的所有单元格的另一种方法 - https://docs.microsoft.com/en-us/office/open-xml/how-to-get-a-column-heading-in-a-spreadsheet 我找不到任何方法来隐藏所有选定的单元格(尝试使用隐藏值的 OpenXMLAttribute,但没有成功。)

你为什么不试试 EPPlus

使用 EPPLus,您可以执行以下操作:

worksheet.Cells.AutoFitColumns();
worksheet.Column(1).Hidden = true;

原来的post是

多亏了这个 post:
我才能够解决这个问题

看来我需要在第一个索引的新 excel 文件中插入我专门隐藏的列。