使用带空格的EPPlus工作表名称导出到Excel

时间:2018-05-25 20:46:56

标签: c# asp.net excel epplus

我有一个工作程序从我的数据库中提取数据并使用EPPlus导出到Excel。但是,用户明确要求名称正是他们想要的名称,其中包含工作表名称中的空格。 目前我的工作表名称为“Reorder_Point”,程序运行正常,但如果我将其更改为“重新订购点”,则会出错。任何人都知道如何做到这一点?谢谢!

string cnAPStr = System.Configuration.ConfigurationManager.ConnectionStrings["conAP_SQLWeb"].ConnectionString; ;
string queryReorder = "exec uspDataPull_ReorderPointInfo";
SqlConnection cn = new SqlConnection(cnAPStr);

SqlDataAdapter daReorder = new SqlDataAdapter(queryReorder, cn);
DataSet dsReorder = new DataSet();
daReorder.Fill(dsReorder);
dsReorder.Tables[0].TableName = "Reorder_Point";

DumpToExcel(dsReorder);

private void DumpToExcel(DataSet dsReorder)
{
    try
    {
        using (ExcelPackage pck = new ExcelPackage())
        {
            ExcelWorksheet ws1 = pck.Workbook.Worksheets.Add(dsReorder.Tables[0].TableName);
            ws1.Cells["A1"].LoadFromDataTable(dsReorder.Tables[0], true);
            using (ExcelRange rng = ws1.Cells["A1:AG1"])
            {
                rng.Style.Font.Bold = true;
            }

            string fileName = "RP_DataPull.xlsx";
            Response.Clear();
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            Response.AddHeader("content-disposition", "attachment;filename=" + fileName);
            Response.BinaryWrite(pck.GetAsByteArray());
        }
    }
    catch (Exception ex)
    {
        Response.Write(ex.Message);
    }
}

1 个答案:

答案 0 :(得分:0)

您可以为工作表命名,而不是依赖源列名称。

ws1.Name = "Reorder Point";