如何使用C#创建Excel电子表格而无需在运行代码的计算机上安装Excel?
目标是在内存中创建一个 excel 文件,并使用 ASP.Net Core 中内置的 API 将其下载到浏览器中,但是将 excel 保存为流并将其转换为字节数组,然后在 excel (Office 365版本 1803)给出错误:
代码字节数组:
public IActionResult Export()
{
byte[] bytes;
MemoryStream stream = new MemoryStream();
using (ExcelPackage package = new ExcelPackage(stream))
{
ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Employee");
//First add the headers
worksheet.Cells[1, 1].Value = "ID";
worksheet.Cells[1, 2].Value = "Name";
worksheet.Cells[1, 3].Value = "Gender";
worksheet.Cells[1, 4].Value = "Salary (in $)";
//Add values
worksheet.Cells["A2"].Value = 1000;
worksheet.Cells["B2"].Value = "Jon";
worksheet.Cells["C2"].Value = "M";
worksheet.Cells["D2"].Value = 5000;
worksheet.Cells["A3"].Value = 1001;
worksheet.Cells["B3"].Value = "Graham";
worksheet.Cells["C3"].Value …Run Code Online (Sandbox Code Playgroud) EPPLus 未返回文件。构建或控制台错误没有错误。
网络选项卡显示已完成 200 ok。
public ActionResult DownloadExcel(EntityReportModel erModel, string filename)
{
var dataResponse = iEntityViewService.LoadEntityView(new EntityViewInput
{
SecurityContext = SessionCache.Instance.SecurityContext,
EntityViewName = "Ticket",
Parameters = new Dictionary<string, object> {
{"MinTicketDateTime", "04/26/16"}
}
});
var table = dataResponse.DataSet.Tables[0];
filename = "NGLTICKETS";
MemoryStream stream = new MemoryStream();
using (ExcelPackage pack = new ExcelPackage())
{
ExcelWorksheet ws = pack.Workbook.Worksheets.Add(filename);
ws.Cells["A1"].LoadFromDataTable(table, true);
return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename);
}
}
Run Code Online (Sandbox Code Playgroud) 使用类似的代码
\n\nusing OfficeOpenXml; // namespace for the ExcelPackage assembly\n\xe2\x80\xa6\nFileInfo newFile = new FileInfo(@"C:\\mynewfile.xlsx"); \nusing (ExcelPackage xlPackage = new ExcelPackage(newFile)) { \xe2\x80\xa6 }\nRun Code Online (Sandbox Code Playgroud)\n\n我收到一个异常错误
\n\n\n\n\n\'IBM437\' 不是受支持的编码名称。有关定义自定义编码的信息,请参阅 Encoding.RegisterProvider 方法的文档。参数名称:名称
\n
关于问题可能是什么的任何想法吗?
\n\n谢谢\n马丁
\n