积累篇二:
感觉上次winform写的数据导出有点繁琐了,这次整合了一下前辈的做法,比较简单,但是缺陷:表名称固定的
下面让我们来看看是如何实现的:
/// <summary>
/// 导出数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
/// *** 12.12
protected void btnExport_Click(object sender, EventArgs e)
{
List<Tb_AgreementInfo> list;
list = tam.GetModelList("1=1");
this.gvCAStatics.DataSource = list;
this.gvCAStatics.DataBind();
CreateExcel(list, "ConFulfilStatics.xls");
}
/// <summary>
/// 导出数据
/// </summary>
/// <param name="list"></param>
/// <param name="FileName"></param>
/// *** 12.12
public void CreateExcel(List<Tb_AgreementInfo> list, string FileName)
{
HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
string colHeaders = "", ls_item = "";
//输出标题
colHeaders += "合同名称" + "\t";
colHeaders += "合同类型" + "\t";
colHeaders += "负责人" + "\t";
colHeaders += "签署日期" + "\t";
colHeaders += "审核状态" + "\n";
resp.Write(colHeaders);
//逐行处理数据
foreach (Tb_AgreementInfo custom in list)
{
ls_item += custom.AreementName + "\t";
ls_item += custom.AreementType==0?"一般客户":"供应商" + "\t";
ls_item += custom.YuetCommissarial + "\t";
ls_item += custom.SubsceibeDate + "\t";
ls_item += custom.IsAduiting == 0 ? "未审核" : "审核通过" + "\n";
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
resp.Write(ls_item);
ls_item = "";
}
//写缓冲区中的数据到HTTP头文件中
resp.End();
}