Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Excel中删除表,但使用VSTO保留注释?_C#_.net_Excel_Vsto - Fatal编程技术网

C# 如何在Excel中删除表,但使用VSTO保留注释?

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

我正在使用下面的代码片段将包含数据的Excel范围转换为表。在某些情况下,我需要删除表,但在单元格中保留注释。有什么办法可以做到这一点吗?还有,有没有办法打开/关闭标题?我在
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();