sha*_*h17 5 c# asp.net gridview epplus
Excel告诉我有无法读取的数据,因此在我说尝试恢复信息后,它会显示正确的数据.但是当我打开xlsx的文本文件时,我得到整个页面的所有html,而不仅仅是gridview(这可能是Excel正在讨论的不可读的内容).
这是我的代码:
public void ExcelDownload(object sender, EventArgs e)
{
DataSet _MailingListUsers = db.GetMailingList();
DataTable mailTable = _MailingListUsers.Tables[0];
DumpExcel(mailTable);
}
private void DumpExcel(DataTable tbl)
{
using (ExcelPackage pck = new ExcelPackage())
{
//Create the worksheet
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Mailing List");
//Load the datatable into the sheet, starting from cell A1. Print the column names on row 1
ws.Cells["A2"].LoadFromDataTable(tbl, false);
//Header Titles
ws.Cells["A1"].Value = "Employee Name";
ws.Cells["B1"].Value = "Email Address";
ws.Cells["C1"].Value = "Phone";
ws.Cells["D1"].Value = "Business Unit";
ws.Cells["E1"].Value = "Site";
ws.Cells["A1"].AutoFitColumns();
//Format the header for column 1-3
using (ExcelRange rng = ws.Cells["A1:E1"])
{
rng.Style.Font.Bold = true;
//Set Pattern for the background to Solid
rng.Style.Fill.PatternType = ExcelFillStyle.Solid;
//Set color to dark blue
rng.Style.Fill.BackgroundColor.SetColor(System.Drawing.Color.FromArgb(79, 129, 189));
rng.Style.Font.Color.SetColor(System.Drawing.Color.White);
}
//Write it back to the client
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=MailingList.xlsx");
Response.BinaryWrite(pck.GetAsByteArray());
}
}
Run Code Online (Sandbox Code Playgroud)
关于可能发生的事情的任何想法?有人建议在尝试将HTML数据发送到Excel后遇到同样的问题时使用EPPlus,它发送的是整个页面,而不仅仅是gridView.
谢谢
Tim*_*ter 10
我错过了Response.Clear()和Response.End():
try {
var pck = new OfficeOpenXml.ExcelPackage();
var ws = pck.Workbook.Worksheets.Add("Mailing List");
ws.Cells["A2"].LoadFromDataTable(tbl, false);
Response.Clear();
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=MailingList.xlsx");
Response.BinaryWrite(pck.GetAsByteArray());
} catch (Exception ex) {
//log error
}
Response.End();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12993 次 |
| 最近记录: |