【问题标题】:Save and Close already opened xlsx file from C#保存并关闭已从 C# 打开的 xlsx 文件
【发布时间】:2018-10-11 18:19:26
【问题描述】:

我有一个 bash 文件,它创建一个 xlsx 文件和一堆 csv 文件。所有 csv 文件都在 xlsx 文件中引用,因此 xlsx 文件仅在 xlsx 文件和所有 csv 文件同时打开时更新。 现在,我必须创建一个调用 bash 文件的 C# 应用程序,然后打开所有 csv 和 xlsx 文件(在 Windows 资源管理器中),保存新更新的 xlsx 文件,然后关闭所有文件。 我设法通过将所有路径放入一个列表来打开文件,然后将每个路径的进程启动到一个循环中。

foreach(var path in paths)
{    
     Process.Start(path);
}

问题是全部打开后不知道怎么保存和关闭。

【问题讨论】:

    标签: c# .net excel csv


    【解决方案1】:

    显然有比 Process.Start 更好的方法来打开 xlsx 和 csv 文件。使用 Microsoft.Office.Interlop.Excel,我可以轻松打开文件,然后保存并关闭它们。

    using Excel = Microsoft.Office.Interop.Excel;
    
                var ExcelApp = new Excel.Application();
                Excel.Workbook workbook = ExcelApp.Workbooks.Open(path);
                ExcelApp.Visible = true;
                workbook.Save();
                workbook.Close();
                ExcelApp.Quit();
    

    【讨论】:

    • 查看 Epplus 作为 Interop 的替代品。你可以在nuget中找到它
    • 另外workbook.Close(true)会同时关闭和保存。
    • 或者you can try this,如果你不想使用Interop。它对我有用。
    猜你喜欢
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    相关资源
    最近更新 更多