当前位置:  开发笔记 > 编程语言 > 正文

.Net Excel Interop删除工作表

如何解决《.NetExcelInterop删除工作表》经验,为你挑选了3个好方法。

我正在尝试使用interop Excel类(对于excel 2003)从.Net c#3.5应用程序中删除excel文档中的工作表.

我尝试过很多东西:

Worksheet worksheet = (Worksheet)workbook.Worksheets[1];
worksheet.Delete();

它不起作用,不会抛出任何错误......



1> Melursus..:

经过一个多小时的观察,我找到了答案:

xlApp.DisplayAlerts = false;
worksheet.Delete();
xlApp.DisplayAlerts = true;


这与表单无关。这是Excel中的错误。设置Excel.Application.Visible = false时,Excel在自动删除工作表时不应显示任何警告“关闭工作表时,您可能会丢失数据,Bla Bla”。

2> itsho..:

处理删除Excel工作表时,有两件重要的事情要知道:

    Excel互操作从1开始计数(而不是从零开始),因此,删除第二项将导致第三项取代它!所以,删除工作表的正确方法是从最后到第一个:

    // Remove LAST worksheet
    MyWorkBook.Worksheets[3].Delete();
    
    // and only then remove the second (which is the last one)
    MyWorkBook.Worksheets[2].Delete();
    

    或者,你可以删除列表中的第二项([2])两次,这将给你相同的结果.

    下面一行抛出异常,当你只得到了一个工作表左:

     MyWorkBook.Worksheets[1].Delete();
    



3> Richard Morg..:

还需要注意的是,工作簿必须包含至少一个工作表; 这意味着您无法删除工作簿中的所有工作表.


我只是通过以错误的方式查看Excel来获取COMExceptions.
推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有