C#Epplus将Byte文件保存为桌面应用程序中的XLS

时间:2017-07-18 11:03:57

标签: c# excel epplus

我需要将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我在打开文件之前有错误:

  

“文件格式与文件扩展名的格式不同   指定“

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

如果您的客户坚持使用.XLS格式并且您无法说服他们更新到MS实际支持的内容,那么我建议您查看使用NPOI,一个开源项目,以旧的MS Office格式读/写文件