本示例基于NPOI,请先添加NPOI.dll的引用
1、建立示例数据库
2、定义一个类,用于从Datatable导出到Excel文件
/// <summary>
/// 导出Excel文件,并自定义文件名
/// </summary>
public static void DataTableExcel(System.Data.DataTable dtData, String FileName)
{
GridView dgExport = null;
HttpContext curContext = System.Web.HttpContext.Current;
StringWriter strWriter = null;
HtmlTextWriter htmlWriter = null;
if (dtData != null)
{
HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8);
curContext.Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + ".xls");
curContext.Response.ContentType = "application nd.ms-excel";
curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;
curContext.Response.Charset = "GB2312";
strWriter = new StringWriter();
htmlWriter = new HtmlTextWriter(strWriter);
dgExport = new GridView();
dgExport.DataSource = dtData.DefaultView;
dgExport.AllowPaging = false;
dgExport.DataBind();
dgExport.RenderControl(htmlWriter);
curContext.Response.Write("<meta http-equiv=\"content-type\" content=\"application/vnd.ms-excel; charset=utf-8\"/>" + strWriter.ToString());
//curContext.Response.Write(strWriter.ToString());
curContext.Response.End();
}
}
3、读取数据库并导出到Excel文件 本示例操作数据库基于EF5.0,使用其他方式请自行修改代码
public void ExportExcel()
{
var list = db.excel.ToList();
DataTable dt = new DataTable();
dt.Columns.Add("C1", typeof(string));
dt.Columns.Add("C2", typeof(string));
dt.Columns.Add("C3", typeof(string));
dt.Columns.Add("C4", typeof(string));
dt.Columns.Add("C5", typeof(string));
dt.Columns.Add("C6", typeof(string));
dt.Columns.Add("C7", typeof(string));
dt.Columns.Add("C8", typeof(string));
dt.Columns.Add("C9", typeof(string));
dt.Columns.Add("C10", typeof(string));
foreach (var item in list)
{
DataRow dr = dt.NewRow();
dr["C1"] = item.C1;
dr["C2"] = item.C2;
dr["C3"] = item.C3;
dr["C4"] = item.C4;
dr["C5"] = item.C5;
dr["C6"] = item.C6;
dr["C7"] = item.C7;
dr["C8"] = item.C8;
dr["C9"] = item.C9;
dr["C10"] = item.C10;
dt.Rows.Add(dr);
}
DataTableExcel(dt, "Excel" + DateTime.Now.ToString("yyyy-MM-dd"));
}
需要示例代码的请在下面留言您的邮箱。