C# 如何在Excel中删除表,但使用VSTO保留注释?
我正在使用下面的代码片段将包含数据的Excel范围转换为表。在某些情况下,我需要删除表,但在单元格中保留注释。有什么办法可以做到这一点吗?还有,有没有办法打开/关闭标题?我在C# 如何在Excel中删除表,但使用VSTO保留注释?,c#,.net,excel,vsto,C#,.net,Excel,Vsto,我正在使用下面的代码片段将包含数据的Excel范围转换为表。在某些情况下,我需要删除表,但在单元格中保留注释。有什么办法可以做到这一点吗?还有,有没有办法打开/关闭标题?我在xlistObjectHashHeaders:Microsoft.Office.Interop.Excel.XlYesNoGuess.下尝试了不同的选项,但都不起作用。谢谢你的帮助 finalRange.Worksheet.ListObjects.AddEx( SourceType: Microsoft.Office.Int
xlistObjectHashHeaders:Microsoft.Office.Interop.Excel.XlYesNoGuess.
下尝试了不同的选项,但都不起作用。谢谢你的帮助
finalRange.Worksheet.ListObjects.AddEx(
SourceType: Microsoft.Office.Interop.Excel.XlListObjectSourceType.xlSrcRange,
Source: finalRange,
XlListObjectHasHeaders: Microsoft.Office.Interop.Excel.XlYesNoGuess.xlYes);
我像这样删除表结构-
finalRange.Worksheet.ListObjects.Item[1].Delete();
编辑(多个表的解决方案):
这两种情况都假定您的表变量是
lo
:
Excel.ListObject lo = ws.ListObjects["Table1"];
要隐藏Excel表格中的标题行,请执行以下操作:
lo.ShowHeaders = false;
要删除表格但保留注释,请使用范围。清除方法而不是表格。删除
Excel.Range tableRange = lo.Range;
tableRange.ClearContents();
这是可行的,但是如果我在一张工作表中处理多个表呢?我将使用什么来代替Excel.ListObject lo=ws.ListObjects[“Table1”]代码>要访问它们所有。。。比如说删除它们?还有,Table1
是预定义的名称吗?我可以在声明期间自己命名这些表,以便轻松访问它们吗?如果需要所有表,可以使用ws.ListObjects
对它们进行迭代。如果不清楚,请告诉我,我可以更新我的答案。如果你想删除它们,另一种方法是将它们转换为范围,然后清除数据——这将删除所有存在的表,但保留注释(和格式,如果你想的话,尽管你可以很容易地删除它们)。如果不清楚,请再次告诉我。^这正是我刚才尝试的。请检查我的编辑。我希望在需要时基本上删除表并保留注释。上面的代码段无法工作,因为它无法将表
转换为列表对象
Excel.Range tableRange = lo.Range;
tableRange.ClearContents();