我正在创建一个加载项,我正在尝试格式化我的加载项生成的输出,使用Format作为Excel提供的表格样式。
您在'主页标签'上获得的那个 - >功能区上的“格式化为表格”按钮。
我正在使用以下代码:
SourceRange.Worksheet.ListObjects.Add(XlListObjectSourceType.xlSrcRange,
SourceRange, System.Type.Missing, xlYesNo, System.Type.Missing).Name =
TableName;
SourceRange.Select();
SourceRange.Worksheet.ListObjects[TableName].TableStyle = TableStyleName;
TableStyleName是任何样式名称,如TableStyleMedium17,只要您将特定样式悬停在Excel中,就可以得到它。
我的问题是,即使我将SourceRange
保留为10列,直到最后的所有列都会被选中并被视为一个表。
因此,我在其旁边填充的表也被视为生成的第一个表的一部分。因此,两个表具有相同的列名excel会自动更改生成的所有后续表中的列名。
另外,因为我在生成2个表之后在循环中生成表,所以我得到错误:
表格不能与另一个表格重叠。
PS:我明确提到SourceRange
为:
var startCell = (Range)worksheet.Cells[startRow, startCol];
var endCell = (Range)worksheet.Cells[endRow, endCol];
var SourceRange = worksheet.get_Range(startCell, endCell);
请建议出路。
答案 0 :(得分:1)
我们能够弄清楚最终发生了什么:
xlWorkbook.Worksheets.Add([before],[after], Type.Missing, Type.Missing)
打电话,我们不得不前后翻转,因为我们希望床单向右移动,而不是离开然后进入
xlWorkbook.Worksheets[sheetCount]
通过增加工作表数量来生成许多工作表。
另一方面是创建工作表以从SourceRange.Worksheet.ListObjects[TableName].TableStyle = TableStyleName
调用访问以前分配的表格格式。
答案 1 :(得分:0)
所以,我在发布这个问题一周后解决了这个问题,抱歉没有在事情发生时更新
这实际上是一个内置的excel功能。
你不能帮助它,excel应用程序将继续这样做。
因此,最终在c#中编写了我自己的表格样式并将其应用于excel范围,该范围被提及为 SourceRange 。它就像写CSS一样
如果您有兴趣在此问题上了解该评论的详细信息,或者您可以通过我的个人资料与我联系。