【问题标题】:Rename header of table ClosedXML重命名表 ClosedXML 的标题
【发布时间】:2014-10-13 10:51:16
【问题描述】:

我正在创建一个带有工作表和表格的工作簿。之后我想更改每列标题的标题。我已经尝试过不同的方法,但是当我打开 xmls 文件时,excel 会显示一条错误消息(按下修复文件后它会打开)。也许有人可以给出提示。这是一个示例,其中我生成了 2 个文件,一个打开,另一个有问题。我正在使用最新版本的库:

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");
}

【问题讨论】:

    标签: c# excel closedxml


    【解决方案1】:

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

    Here 是对该错误的讨论。 ClosedXML 的作者声称它已修复,但我使用最新版本对其进行了测试,但仍然存在错误。

    您应该在那里发帖并与作者澄清。

    【讨论】:

    【解决方案2】:

    我已经联系了他们,他们似乎在源代码中修复了这个错误,但在发行版中没有。非常感谢您对这个问题感兴趣。

    【讨论】:

    • 这似乎更像是对我的回答的回复,而不是本身的回答。但感谢您提供的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 2011-08-09
    • 1970-01-01
    相关资源
    最近更新 更多