导出Excel 第一行指定位置导出自定义标题
用下面方法导出Excel,现在导出的第一行为列名,第二行以下为数据...
怎么使用第一行为自定义标题呢?(例如:导出显示第一行的A1~A10单元格合并为:制造部数据)
网上查了下 说用NPOI http://www.zlblogs.com/export-excel-merge-cells.html 有点复杂!
能否简单的方法 实现 第一行指定位置加入标题!
谢谢 大家指点!!
- C# code
public void DataSetToExcel(DataTable dt) { HttpResponse resp = HttpContext.Current.Response; resp.Clear(); resp.AppendHeader("Content-Disposition", "attachment;filename=\"" + HttpUtility.UrlEncode("application / vnd.ms - excel", System.Text.Encoding.UTF8) + "\""); resp.ContentType = "application/ms-excel;"; //resp.ContentEncoding = Encoding.GetEncoding("GB2312"); resp.ContentType = "application/vnd.ms-excel"; resp.AppendHeader("Content-Disposition", "attachment;filename=Excel.cvs"); StringWriter oSW = new StringWriter(); HtmlTextWriter oHW = new HtmlTextWriter(oSW); DataGrid dg = new DataGrid(); dg.DataSource = dt; dg.DataBind(); dg.RenderControl(oHW); resp.Write(oSW.ToString()); resp.Flush(); resp.Close(); }
[解决办法]
可以第一列为列名,列名可以自己定义
见代码地址:
http://www.cnblogs.com/wcj1984abc/archive/2011/03/17/1986872.html
这行代码,是标题的意思,根据你的需要可以改的
swCSV.WriteLine("工单编号,工单标题,工单类型,创建时间,当前状态,当前节点名称,当前处理人 ");
[解决办法]
楼主,看看这片文章
http://blog.csdn.net/wangyong0921/article/details/6550399
[解决办法]
如果数据量大,这种方式很慢。 考虑stream直接写成csv文件。
public void ExportToCSV(DataTable ds, string filePath)
{
using (StreamWriter sw = new StreamWriter(filePath, false, Encoding.Unicode))
{
for (int i = 0; i < ds.Columns.Count; i++)
{
sw.Write(ds.Columns[i].ColumnName + "\t");
}
sw.Write("\n");
for (int i = 0; i < ds.Rows.Count; i++)
{
for (int j = 0; j < ds.Columns.Count; j++)
{
sw.Write(ds.Rows[i][j].ToString() + "\t");
}
sw.Write("\n");
}
sw.Close();
}
return;
}
[解决办法]
如果数据固定的也可以弄个CSV模板
[解决办法]
控制格式的方法
http://dotnet.aspx.cc/file/Export-Gridview-To-Excel-With-Multi-Sheet.aspx