重命名表ClosedXML的头

我正在创build一个工作表和一个工作表。 之后,我想更改每列的标题标题。 我已经尝试过不同的方法,但是当我打开xml文件时,excel显示了一个错误信息(在按下修复文件后它会打开)。 也许有人可以提供一个提示。 这里是一个例子,我产生2个文件,一个打开,另一个有问题。 我正在使用lib的最新版本:

public class Test { public string Test1 { get; set; } public string Test2 { get; set; } } public void MyTest() { List<Test> testList = new List<Test> { new Test{Test1 = "T1",Test2 = "T2"}, new Test{Test1 = "T1",Test2 = "T2"} }; var wb1 = new XLWorkbook(); var ws = wb1.Worksheets.Add("Mysheet"); ws.Cell(1, 1).InsertTable(testList); wb1.SaveAs(@"C:\Test\Test1.xlsx"); var wb2 = new XLWorkbook(); var ws2 = wb2.Worksheets.Add("Mysheet"); var tb2 = ws2.Cell(1, 1).InsertTable(testList); const string newHeader = "TestNew"; for (int i = 0; i < tb2.Fields.Count(); i++) { tb2.Field(i).Name = string.Format( "{0} {1}", newHeader, i ); } wb2.SaveAs(@"C:\Test\Test2.xlsx"); } 

在ClosedXML中似乎有一个错误。 当您更改Field(...).Name只会更改带有列标题的单元格的显示值,而不会更改实际表格代码中的字段名称。 (可以通过打开Test2.xlsx作为zip文件来查看,并查看xl\worksheets\sheet.xmlxl\tables\table.xml 。)

这是对这个错误的讨论。 ClosedXML的作者声称它是固定的,但是我用最新的版本testing了它,并且仍然有bug。

你应该在那里张贴,并与作者澄清。

我已经联系了他们,似乎他们修复了这个bug在源代码中,而不是在发布。 非常感谢您对这个问题的兴趣。