C# - 添加多个Excel格式的表

时间:2014-10-01 14:48:27

标签: c# excel

我正在尝试从C#执行Excel'格式为表'选项。

这对一个表是成功的,但是当我尝试添加多个表时:

    var range = _worksheet.get_Range("A1:C5");
    _worksheet.ListObjects.AddEx(XlListObjectSourceType.xlSrcRange, range, misValue, Microsoft.Office.Interop.Excel.XlYesNoGuess.xlYes, misValue).Name = "MyTableStyle";
    _worksheet.ListObjects.get_Item("MyTableStyle").TableStyle = "TableStyleLight9";

    range = _worksheet.get_Range("A18:C23");
    _worksheet.ListObjects.AddEx(XlListObjectSourceType.xlSrcRange, range, misValue, Microsoft.Office.Interop.Excel.XlYesNoGuess.xlYes, misValue).Name = "MyTableStyle";
    _worksheet.ListObjects.get_Item("MyTableStyle").TableStyle = "TableStyleLight9";

我希望这会在文档的顶部创建一个表,并在另一个表中创建几行相同的表。这两个表都不应该重叠,但是我得到了COMException:

A table cannot overlap another table.

当它试图添加第二个表(A18:C23)时会发生这种情况,当这些坐标永远不会产生重叠表时,会出现这种情况的原因吗?

1 个答案:

答案 0 :(得分:1)

我的问题是由于我多次使用名称“MyTableStyle”(并且每次都使用相同的项目)引起的。

_worksheet.ListObjects.AddEx(XlListObjectSourceType.xlSrcRange, range, misValue, Microsoft.Office.Interop.Excel.XlYesNoGuess.xlYes, misValue).Name = "MyTableStyle";
    _worksheet.ListObjects.get_Item("MyTableStyle").TableStyle = "TableStyleLight9";

为每个表使用唯一名称解决了问题。