.net C#怎么写excel

我要的效果如下图,可以写死,也可以动态的,我数据是从数据库拿的。怎么写到下面的效果。

实现这个导出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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-04
直接用WebBrowser读取出来的,数据库里面就是个获取的地址,通过读取数据库里面文件地址,加载Excel到WebBrowser的url就得出了这么一个效果。又不是真正的开发Excel表格
开发EXCEL的软件我举个例子,ERP的添表式录入方法很多是通过EXCEL结合GridView来完成的追问

有实例吗?我找了几天了,没找到。

追答

我靠你直接把一个EXCEL完整路径放在WebBrowser的url里试一下看一看效果就知道了。

放在服务器上,只不过他是个远程地址而已,没有什么特殊的。你那图是软件上的还是导出到EXCEL里的效果,我的意思是在软件上直接看到的效果

第2个回答  2013-10-04
你可以看看aspose控件,网上搜搜吧。里头有专门控制excel的控件应用
相似回答