【问题标题】:Automatically exit generated Excel file correctly自动正确退出生成的 Excel 文件
【发布时间】:2019-02-25 11:59:29
【问题描述】:

我的程序循环生成 Excel 并通过电子邮件发送。在每次循环迭代中,它都应该覆盖 Excel,但旧 Excel 进程仍在使用 Excel,这就是我得到 System.IO.IOException 异常的原因。

流程如下:

代码如下:

if(File.Exists(PfadXlsx)) File.Delete(PfadXlsx);

        mExcel.Visible = true;
        mExcelWs.SaveAs(PfadXlsx, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, missing, missing, false, false, false, missing, missing, missing);     // Datei speichern

        mExcelWb.Close(true, missing, missing);
        mExcel.Application.Quit();
        mExcel.Quit();

mExcel == Excel.Application mExcelWB == Excel.Workbook mExcel==Excel.Worksheet 缺失 == type.missing

【问题讨论】:

  • 你能在每个循环中生成一个新的 Excel 文件吗?

标签: c# wpf


【解决方案1】:

您应该考虑不为此使用互操作;有相当多的 c# 库可以直接生成 xlsx 而无需安装 excel。 xlsx 只是一个 xml 文件,经过压缩和重命名,因此无需其他软件即可正常工作。就个人而言,过去我使用过 EPPlus,但在 nuget 上有很多选择。通过删除 excel interop,您可以解决问题,并降低程序的安装要求。用户可以同样安装excel,但不会使用。他们还可以使用免费的 excel 查看器,而无需花钱去办公

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多