{
HttpResponse response = HttpContext.Current.Response;
response.Buffer = true;
response.Clear();
response.ClearHeaders();
response.ClearContent();
response.ContentType = "application/vnd.ms-excel";
response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", fileName + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss")));
response.AppendCookie(new HttpCookie("fileDownloadToken", "true"));
response.Charset = "UTF8";
response.ContentEncoding = System.Text.Encoding.UTF8;
//实例化一个流
StringWriter stringWrite = new StringWriter();
//指定文本输出到流
HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView gv = new GridView();
gv.DataSource = dt;
gv.DataBind();
#region 设置多表头 此表头即为导出到excel中的表头
TableCell[] header = new TableCell[9];//9列
for (int i = 0; i < header.Length; i++)
{
header[i] = new TableHeaderCell();
}
header[0].RowSpan =2;
header[0].Text = "跨行列1";
header[1].RowSpan = 2;
header[1].Text = "跨行列2";
header[2].RowSpan = 2;
header[2].Text = "跨行列3";
header[3].RowSpan = 2;
header[3].Text = "跨行列4";
header[4].ColumnSpan = 4;
header[4].Text = "跨列1</th></tr><tr>";
header[5].Text = "跨列1_1";
header[6].Text = "跨列1_2";
header[7].Text = "跨列1_3";
header[8].Text = "跨列1_4";
gv.HeaderRow.Cells.Clear();
gv.HeaderRow.Cells.AddRange(header);
#endregion
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
//设置每个单元格的格式
gv.Rows[i].Cells[j].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
var val= gv.Rows[i].Cells[5].Text;//这里取出每个单元格的值
}
//把 GridView 的内容输出到 HtmlTextWriter
gv.RenderControl(htmlWrite);
response.Write(stringWrite.ToString());
stringWrite.Close();
response.Flush();
response.End();
}
//组装DataTable数据,之和调用导出函数
public void Export(string objName)
{
switch (objName)
{
case "V_KY_Budget":
{
DataTable dataTable = new DataTable();
string[] colomons = { "列1", "列2", "列3", "列4", "列5"};
foreach (var item in colomons)
{
dataTable.Columns.Add(item);
}
for (int i = 0; i < reportData.Rows.Count; i++){
DataRow dataRow = dataTable.NewRow();
//添加行数据
dataTable.Rows.Add(dataRow);
}
ExportExcel("导出的excel名称", dataTable);
break;}
default:
base.Export();
break;
}
}
//导出的excel如图
//说明:此代码仅为示例,若要应用到项目需要根据情况调整格式