【发布时间】:2019-07-24 17:27:00
【问题描述】:
我正在尝试做这样的事情:
我正在尝试在 Excel 工作表中添加数据。仅当我将数据添加到第一列中的单元格时,才能正确完成此操作。在该文件名与单元格数据一起出现之后。例如,如果单元格是 C5,它会将 4 个文件名附加到每个输入,然后是数据。 有人可以帮我解决我做错的事情吗?
public void Create()
{
string filepath = string.Empty;
using (ExcelEngine excelEngine = new ExcelEngine())
{
IApplication application = excelEngine.Excel;
application.DefaultVersion = ExcelVersion.Excel2016;
IWorkbook workbook = application.Workbooks.Create(1);
IWorksheet namedSheet = workbook.Worksheets[0];
namedSheet.Range["A1"].Text = "Hey there";
namedSheet.Range["A2"].Text = "Good Morning";
namedSheet.Range["A6"].Text = "Here I am!";
namedSheet.Range["B5"].Text = "1";
MemoryStream ms = new MemoryStream();
workbook.SaveAs(ms, "0.xlsx");
byte[] bytes = ms.ToArray();
ms.Flush();
ms.Close();
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=foo.xls");
Response.AddHeader("Content-Length", bytes.Length.ToString());
Response.ContentType = "application/octet-stream";
Response.BinaryWrite(bytes);
}
}
嘿那里0.xlsx
早上好0.xlsx
0.xlsx1
我在这里!0.xlsx
使用 Syncfusion Essential XlsIO 的试用版创建
【问题讨论】:
-
您为什么要将此文件以 .xls 扩展名提供给最终用户,而将其以 .xlsx 扩展名保存在磁盘上?我会假设 .xlsx 是正确的,因为您指定了 Excel 2016。
-
@mason 这是骗人的。
SaveAs的重载不使用第二个参数作为文件名。它实际上并没有保存到磁盘。 -
您应该在获取其数组缓冲区之前刷新数组。
-
@Amy 有趣。从未与 Syncfusion 合作过。 renu - 我的建议仍然是确保您使用正确的扩展名和MIME Type 向用户提供文件。或者,如果您正在使用 CSV,则使用 .csv 和
text/csv
标签: c# asp.net-mvc syncfusion