Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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# 4.0 用于删除Excel工作表的代码无效_C# 4.0 - Fatal编程技术网

C# 4.0 用于删除Excel工作表的代码无效

C# 4.0 用于删除Excel工作表的代码无效,c#-4.0,C# 4.0,我编写了以下代码来从Excel工作簿中删除Excel工作表。代码没有抛出任何错误,但在打开Excel时,工作表不会被删除 public void EXcelCleanup(string Excelpath) { Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); excelApp.Displ

我编写了以下代码来从Excel工作簿中删除Excel工作表。代码没有抛出任何错误,但在打开Excel时,工作表不会被删除

 public void EXcelCleanup(string Excelpath)
 {
            Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
            excelApp.DisplayAlerts = false;
            string WorkbookLocation = Excelpath;
            Microsoft.Office.Interop.Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(WorkbookLocation,
            0, false, 5, "", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "",
            true, false, 0, true, false, false);
            Microsoft.Office.Interop.Excel.Sheets worksheets = excelWorkbook.Worksheets;

            int wsCount = worksheets.Count;

            if (wsCount > 1)
            {
                for (int i = 2; i <wsCount-1; i++)
                {
                    worksheets[i].Delete();
                }
            }

            excelWorkbook.Save();
            excelWorkbook.Close();
            Marshal.ReleaseComObject(worksheets);
            excelApp.Quit();
}
public void EXcelCleanup(字符串Excelpath)
{
Microsoft.Office.Interop.Excel.Application excelApp=新的Microsoft.Office.Interop.Excel.Application();
excelApp.DisplayAlerts=false;
字符串WorkbookLocation=Excelpath;
Microsoft.Office.Interop.Excel.Workbook excelWorkbook=excelApp.Workbooks.Open(WorkbookLocation,
0,false,5,“,”,false,Microsoft.Office.Interop.Excel.XlPlatform.xlWindows,“,
真,假,0,真,假,假);
Microsoft.Office.Interop.Excel.Sheets工作表=Excel工作簿。工作表;
int wsCount=工作表。计数;
如果(wsCount>1)
{
对于(int i=2;i一对指针

  • 在.NET4.0中,您有可选参数,因此您可能不需要提供所有参数来打开电子表格

  • 删除反向循环中的图纸:

    用于(int i=wsCount-1;wsCount-1>1;i--)工作表[i]。删除();

  • 您不需要
    if(wsCount>1)
    ,因为循环具有此条件

  • excelWorkbook.Save=true;
    设置在
    excelWorkbook.Save();
    之前,以避免excel提示您保存

  • 检查您没有以只读模式打开电子表格

  • 两个指针

  • 在.NET4.0中,您有可选参数,因此您可能不需要提供所有参数来打开电子表格

  • 删除反向循环中的图纸:

    用于(int i=wsCount-1;wsCount-1>1;i--)工作表[i]。删除();

  • 您不需要
    if(wsCount>1)
    ,因为循环具有此条件

  • excelWorkbook.Save=true;
    设置在
    excelWorkbook.Save();
    之前,以避免excel提示您保存

  • 检查您没有以只读模式打开电子表格


  • 我认为是的,在执行此代码的过程中,文件可能处于只读模式,因此在执行此代码之前要添加哪些内容以使其不是只读的。嘿,我得到了答案,需要在执行此代码之前关闭工作簿。谢谢:)我认为是的,在执行此代码的过程中,文件可能处于只读模式,因此在执行此代码之前要添加哪些内容以使其不是只读的。嘿,我得到了答案,需要在执行此代码之前关闭工作簿。谢谢:)