如何使用 Excel Interop 设置工作表名称
How to set the worksheet name with Excel Interop
using (XLWorkbook wb = new XLWorkbook())
{
wb.Worksheets.Add(dt);
wb.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
wb.Style.Font.Bold = true;
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename= EmployeeReport.xlsx");
using (MemoryStream mymemorystream = new MemoryStream()) {
wb.SaveAs(mymemorystream);
mymemorystream.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
}
}
我收到的错误消息是
Worksheet names cannot be empty.
我该如何解决这个问题?
作品sheet添加操作返回的对象是作品sheet本身。更改该对象的作品sheet名称:
var ws = wb.Worksheets.Add(dt);
ws.Name = "my sheet name";
此外,因为您使用 DataTable 作为 sheet 的源,您必须确保 table 有一个名称:
dt.TableName = "my sheet name";
参考资料
using (XLWorkbook wb = new XLWorkbook())
{
wb.Worksheets.Add(dt);
wb.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
wb.Style.Font.Bold = true;
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename= EmployeeReport.xlsx");
using (MemoryStream mymemorystream = new MemoryStream()) {
wb.SaveAs(mymemorystream);
mymemorystream.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
}
}
我收到的错误消息是
Worksheet names cannot be empty.
我该如何解决这个问题?
作品sheet添加操作返回的对象是作品sheet本身。更改该对象的作品sheet名称:
var ws = wb.Worksheets.Add(dt);
ws.Name = "my sheet name";
此外,因为您使用 DataTable 作为 sheet 的源,您必须确保 table 有一个名称:
dt.TableName = "my sheet name";
参考资料