实现这个导出excel功能,用Microsoft.Office.Interop.Excel,Aspose,NPOI等都可以;
但由于导出excel的格式比较复杂,合并单元格还是比较麻烦的。
如下,我给你写了个例子,提供一种较简单的方式:
步骤1:无论格式有多复杂,先把数据库的数据读取出来并拼接成html 的Table格式。
或者先定义html table模版,然后用数据填充。
<table border="1">
<tr>
<th colspan="4">2013年团队分组PK</th>
</tr>
<tr>
<th rowspan="2">团队</th>
<th colspan="3" style="color:#f00">8月31日止</th>
</tr>
<tr>
<th>分店</th>
<th>基本线</th>
<th>挑战线</th>
</tr>
<tr>
<td rowspan="4">大连组</td>
<td>蒙莱</td>
<td rowspan="4">50万</td>
<td rowspan="4">100万</td>
</tr>
<tr>
<td>闪亮亮</td>
</tr>
<tr>
<td>石发</td>
</tr>
<tr>
<td>三分</td>
</tr>
</table>
步骤2,利用Response.Write输出excel文件:
string elxStr = tb_Excel.InnerHtml;//Table的html
Response.Clear();
Response.Buffer = true;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + DateTime.Now.ToString("yyyyMMdd") + ".xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
Response.ContentType = "application/vnd.ms-excel";
Response.Write(elxStr);
Response.End();
步骤3,导出效果:
源代码下载(仅供学习交流使用):
追问你这是web的,我要winform下的。有winform下的例子吗?
追答winform的我就不写了,合并单元格需要点耐心。
worksheet.get_Range().Merge();
你可以看看这篇文章,这是用COM组件导出的:
http://hi.baidu.com/jimpanf/item/6773171847b46e14e2f98637