星期五, 4月 14, 2023

[C#] Excel - 儲存為 xls 格式

把該篇 VFP 筆記 - [VFP] Automation 應用 - 儲存為 xls 格式 改成透過 C# 把 xlsx 轉成 xls

該篇就完全看 Code 理解囉
using Excel = Microsoft.Office.Interop.Excel;

namespace Utilities
{
    public static class ExcelHelper
    {
        public static void XLSConvert(
            string sourceFileFullName,
            string destFileFullName)
        {

            Excel.Application excel = null;
            Excel.Workbook workBook = null;

            try
            {
                excel = new Excel.Application();

                // 萬一目的地已經有同名檔案,不會出現詢問視窗
                excel.DisplayAlerts = false;

                // 開啟 xlsx 檔案
                workBook = excel.Workbooks.Open(sourceFileFullName);

                // Excel.XlFileFormat.xlExcel8 會產生 Excel97-2003 的 xls 格式
                workBook.SaveAs(destFileFullName, Excel.XlFileFormat.xlExcel8);

                // 關閉工作簿並退出 Excel 應用程式
                workBook.Close();
                excel.Quit();

            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                // 釋放 Excel COM 物件
                if (workBook != null)
                    Marshal.ReleaseComObject(workBook);

                if (excel != null)
                    Marshal.ReleaseComObject(excel);
            }
        }
    }
}
實務上第一次操作 Microsoft.Office.Interop.Excel,要特別注意主動釋放 Unmanaged Excel COM 物件,要不然工作管理員內有會有一堆 Excel 殘留在系統內

沒有留言:

張貼留言