我需要將ExcelPackage另存爲XLS文件。我嘗試這樣做,我知道如何更改Web應用程序中的內容類型,但我無法在桌面環境中找到任何解決方案。C#Epplus將字節文件保存爲桌面應用程序中的XLS
現在我使用此代碼:
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的我打開文件之前有一個錯誤:
「的文件格式不同於文件擴展名 指定格式」
AFAIK'EPPlus'庫只支持MS Office 2007及以上版本的格式,所以不支持'xls'文件,僅支持'xlsx'。但是還有其他一些能夠讀寫xls文件的庫(儘管我知道的只有那些不是免費的)。 – bassfader
你有沒有試過使用'ExcelPackage.Save'方法? – Sakis
只需避免'xls'。它已在10年前被'xlsx'所取代。相當於'xlsx'的* binary *是'xlsb',而不是'xls'。 *免費的Google Docs,Sheets或Office 365產品*不再支持舊格式'xls'。您必須使用付費訂閱。原因是它*昂貴*。它從來沒有被記錄在第一位。它實際上*需要* Excel來進行精確處理。 –