表格导出excel的一点经验心得,html表格导出Excel的一点经验心得"/>
html表格导出excel的一点经验心得,html表格导出Excel的一点经验心得
最近在做统计功能,要求统计结果(表格)既能查看(BS系统,在浏览器查看),又能输出
为excel文件。对于输出excel文件,在网上找到n种方案,因为还需查看,最终选择了统计结果输出为table,查看时直接显示table,输出
excel时把table写进输出流,ContentType设置为application/vnd.ms-excel再输出,具体方法如下:
软件环境:VS2008,C#,IE,office2010
1.输出流内容的格式
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="">
2.Response的属性设置
Response关键属性有几个
//输出的应用类型
Response.ContentType =
"application/vnd.ms-excel";//设定编码方式,若输出的excel有乱码,可优先从编码方面解决
Response.Charset =
"gb2312";Response.ContentEncoding = System.Text.Encoding.UTF8;
//关闭ViewState,此属性在Page中EnableViewState = false; //filenames是自定义的文件名Response.AppendHeader("Content-Disposition",
"attachment;filename=" +
filenames);//content是步骤1的html,注意是string类型Response.Write(content);
Response.End();
这样已经能发布最基本的excel,下面说些细节
1.样式最好用css,即设style属性或class属性,有些样式属性excel不认的。th、td的宽度最好在colgroup中设
2.在excel的格子中换行,可以用这个
style='mso-data-placement:same-cell;'/>
3.关于边框宽度的问题,如果你的table是全边框,可以设置table的border属性,其中0=不显示边框。
如果表的格式比较复杂,特别是表头,有些边要隐藏的,这个要先把table的border=0,之后对每个th
td用css的边框样式进行设置,但这里有个地方要注意,就是宽度,设为0.5pt(例:border-left: 0.5pt solid
#000;),如果设为1px输出的边框会很粗。
4.excel空余部分边框的问题。用此方法输出的excel,空余部分边框都不显示,如果要做成想普通excel的样子,需在输出流的head部分加上excel的设置,例子如下:
最后附上一个成果作为例子,扩展名为xls可用excel打开
xmlns:o="urn:schemas-microsoft-com:office:office"xmlns:x="urn:schemas-microsoft-com:office:excel"
xmlns="">
2011年增城市单位土地使用权出让情况登记表(统计时间从2011-06-29至2011-06-30) | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
单位:万元、平方米 | |||||||||||||||||||||||||
合同编号 | 用地单位 | 土地座落 | 供地面积 | 用途 | 出让金 | 容积率 | 建筑密度 | 绿地率 | 规划建筑面积 | 出让方式 | 审批日期 | 合同签订日期 | 动工期限 | 竣工日期 | 批次情况 | 合同约定缴费期限 | 缴费情况 | 滞纳金 | 备注 | ||||||
新增面积 | 保障性住房用地占用面积 | 应缴 | 已缴 | 未缴 | |||||||||||||||||||||
440183-2011- | 45654 | 1110000 | 111 | 拍卖出让 | 2011-06-29 | ||||||||||||||||||||
合计 | 1110000 | 111 |
更多推荐
html表格导出excel的一点经验心得,html表格导出Excel的一点经验心得
发布评论