繁体   English   中英

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

[英]OpenXML Excel file corrupted when trying to hide a column

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

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 文件时,它似乎已损坏。 关于我在这里可能缺少什么的任何想法? 我尝试使用微软文档获取特定列的所有单元格的另一种方法 - https://docs.microsoft.com/en-us/office/open-xml/how-to-get-a-column-heading -in-a-spreadsheet我找不到任何方法来隐藏所有选定的单元格(尝试使用 OpenXMLAttribute 并隐藏值,但没有成功。)

由于这篇文章,我能够解决这个问题:
在 OpenXML (excel) 中创建自定义列宽

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

你为什么不试试EPPlus呢?

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

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

原帖在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM