在Excel工作表中添加自定义标题

时间:2017-03-31 07:39:23

标签: c# sql

string strFileName = "LoginData.xls";    

ds.Tables[0].TableName = "LoginUserData";

var stringXml = ExcelHelper.GetExcelXml(ds, strFileName);

Response.Clear();

Response.AppendHeader("content-Type", "application/vnt.ms-excel");

Response.AppendHeader("content-disposition", "attachment; filename=" + strFileName);
string headerTable = @"<Table><tr><td>Report Header</td></tr><tr><td></Table>";
Response.Write(headerTable);
Response.Write(stringXml);

Response.Flush();
Response.End();

1 个答案:

答案 0 :(得分:1)

更好的方法可能是使用epplus并以这种方式创建Excel文档。

有关以下示例,请参阅this

private void DumpExcel(DataTable tbl)
{
    using (ExcelPackage pck = new ExcelPackage())
    {
        //Create the worksheet
        ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo");

        //Load the datatable into the sheet, starting from cell A1. Print the column names on row 1
        ws.Cells["A1"].LoadFromDataTable(tbl, true);

        //Format the header for column 1-3
        using (ExcelRange rng = ws.Cells["A1:C1"])
        {
            rng.Style.Font.Bold = true;
            rng.Style.Fill.PatternType = ExcelFillStyle.Solid;                      //Set Pattern for the background to Solid
            rng.Style.Fill.BackgroundColor.SetColor(Color.FromArgb(79, 129, 189));  //Set color to dark blue
            rng.Style.Font.Color.SetColor(Color.White);
        }

        //Example how to Format Column 1 as numeric 
        using (ExcelRange col = ws.Cells[2, 1, 2 + tbl.Rows.Count, 1])
        {
            col.Style.Numberformat.Format = "#,##0.00";
            col.Style.HorizontalAlignment = ExcelHorizontalAlignment.Right;
        }

        //Write it back to the client
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-disposition", "attachment;  filename=ExcelDemo.xlsx");
        Response.BinaryWrite(pck.GetAsByteArray());
    }
}