我正在尝试从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)时会发生这种情况,当这些坐标永远不会产生重叠表时,会出现这种情况的原因吗?
答案 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";
为每个表使用唯一名称解决了问题。