我正在使用EPPlus库来创建excel文件。这是我正在使用的代码
public static byte[] CreateExcelFile(DataTable dataTable)
{
using (ExcelPackage pck = new ExcelPackage())
{
//Create the worksheet
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Sheet1");
//Load the datatable into the sheet, starting from cell A1. Print the column names on row 1
ws.Cells["A1"].LoadFromDataTable(dataTable, true);
//Format the header for column A1:AZ1
using (ExcelRange rng = ws.Cells["A1:AZ1"])
{
rng.Style.Font.Bold = true;
}
////Example how to Format Column 1 as numeric
//using (ExcelRange col = ws.Cells[2, 1, 2 + dataTable.Rows.Count, 1])
//{
// col.Style.Numberformat.Format = "#,##0.00";
// col.Style.HorizontalAlignment = ExcelHorizontalAlignment.Right;
//}
return pck.GetAsByteArray();
}
}
然后我使用以下内容类型生成一个resposne:“application / vnd.openxmlformats-officedocument.spreadsheetml.sheet”
该文件正在下载但未知类型。如果将文件重命名为a.xlsx,则会打开excel文件。
我使用的是旧版本,然后用最新的版本更新了dll,但问题仍然存在。有任何想法吗 ?
答案 0 :(得分:1)
将Content-Type更改为“application / octet-stream”,并将值为“attachment; filename = foo.xlsx”的Content-Disposition添加到您的响应标题中。