C# Epplus 在桌面应用程序中将字节文件保存为 XLS

C# Epplus Save Byte file as XLS in a Desktop Application

我需要将 ExcelPackage 另存为 XLS 文件。我尝试这样做,我知道如何更改 Web 应用程序中的内容类型,但我在桌面环境中找不到任何解决方案。

现在我正在使用这个代码:

    using (ExcelPackage p = new ExcelPackage())
    {
       string filename = "OCL_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
       string PathToCSV = "App_Data/OCL/";
       string OCLfolder = AppDomain.CurrentDomain.BaseDirectory + PathToCSV;
       string savepath = OCLfolder + "/" + filename;
       System.IO.FileInfo strfilePath = new System.IO.FileInfo(savepath);
       //create a new workbook
       p.Workbook.Properties.Created = DateTime.Now;
       p.Workbook.Properties.Title = filename;
       //create a new worksheet
       p.Workbook.Worksheets.Add(filename);
       ExcelWorksheet ws = p.Workbook.Worksheets[1];
       createExcelData(ws, idCliente, idDestinatario, idSpedDati);
       ws.Cells[ws.Dimension.Address].AutoFitColumns();
       for (int col = 1; col <= ws.Dimension.End.Column; col++)
       {
          ws.Column(col).Width = ws.Column(col).Width + 1;
       }
       byte[] bin = p.GetAsByteArray();
       strfilePath.Directory.Create();
       File.WriteAllBytes(savepath, bin);
       return savepath;
   }

如果我将文件另存为 .xlsx 没有问题,但如果我另存为 .xls 我在打开文件之前遇到错误:

"The file format differs from the format that the file name extension specifies"

EPPlus 不适用于 XLS 格式。只有 XLSX。

如果您的客户坚持使用 .XLS 格式,而您无法说服他们更新为 MS 实际支持的格式,那么我建议您使用 NPOI,一种开源软件reading/writing 旧版 MS Office 格式文件的项目