繁体   English   中英

如何从 Visual Studio 中删除 Excel 文件?

[英]How do I delete Excel file from Visual Studio?

VS 和 Excel 菜鸟。 当我在 Visual Studio 中使用 Excel 文件时,即使我停止运行代码甚至关闭 Visual Studio,该文件也拒绝被删除。

我试图删除文件,停止代码,然后删除文件,关闭 Visual Studio。 我还没有重新启动,但我不想这样做。

        Excel.Application oXL = new Excel.Application();

        Excel.Workbook oWB = oXL.Workbooks.Open(xlsmfilePath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

        Excel.Worksheet oWS = oWB.Worksheets[1] as Excel.Worksheet;

        Excel.Range range;

        range = oWS.UsedRange;

        //read first row, first cell value 
        int rowCount = range.Rows.Count;
        int colCount = range.Columns.Count;
        string roadName = string.Empty;
        //iterate over the rows and columns and print to the console as it appears in the file
        //excel is not zero based!!
        for (int i = 2; i <= rowCount; i++)
        {
            for (int j = 1; j <= colCount; j++)
            {
                if (j == 17)
                {
                    if (range.Cells[i, j].Value2 == null || range.Cells[i, j].Value2.ToString() == "")
                        break;
                    //write the value to the console
                    if (i > 1 && range.Cells[i, j] != null && range.Cells[i, j].Value2 != null && range.Cells[i, j].Value2 != "" && range.Cells[i, j].Value2.Contains(fileName))
                    {
                        roadName=range.Cells[i, 4].Value2.ToString();
                        break;
                    }
                }
            }
        }

我希望我可以在这里做截图。

它只是要求“再试一次”删除,但它不会删除。

这段代码怎么样:

string authorsFile = "file.xlsx";

try
{
    if (File.Exists(Path.Combine(rootFolder, authorsFile)))
    {
        File.Delete(Path.Combine(rootFolder, authorsFile));
    }
    //nothing   
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

为了使您的 excel 文档不会卡在打开状态并返回有关“另一个进程正在使用文件”的错误,您需要在代码中关闭它。

尝试关闭您的工作簿,然后申请。 这应该会释放您的 Excel 文档。 将以下内容添加到您的方法末尾: oWB.Close(0); 然后oXL.Quit();

您的代码:

Excel.Application oXL = new Excel.Application();
Excel.Workbook oWB = oXL.Workbooks.Open(xlsmfilePath, ... Missing Values ...);
...
// Code for altering workbook
... 
oWB.Close(0);
oXL.Quit();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM