<html xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office"/>
2009-08-07
JSP应用导出Excel报表的简单实现以及中文乱码彻底解决(HTML)
Web应用导出Excel报表的简单实现(HTML)
在Web应用中,很多数据经常要导出成Excel文档。用专门的生成真正的Excel文档的方式比较复杂,不太好用。所以经常用一种简单的方式来实现,即将报表保存为HTML格式,然后用Excel打开。
实现方式:
第一步,用JSP实现HTML版本的报表
第二步,在该JSP页面头部设置response的ContentType为Excel格式
引用
<% response.setContentType("application/vnd.ms-excel;charset=GBK"); %>
中文问题:
查看源代码时发现JSP文件中写死的中文为乱码,则在JSP文件头部添加一行
引用
<%@ page contentType="text/html; charset=gb2312" %>
查看源代码时发现文字为中文,但是用Excel打开为乱码则在<html>与<head>中加入
引用
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
用Servlet实现也是类似的处理方法。
实现样例:Test.jsp
Java代码
1.<%@ page contentType="text/html; charset=GBK" %>
2.<% response.setContentType("application/vnd.ms-excel;charset=GBK"); %>
3.<HTML>
4.<meta http-equiv="Content-Type" content="text/html; charset=GBK">
5.<head><title>Test</title></head>
6.<body>
htmlform里面的元素对不齐7.<TABLE borderColor=#111111 cellSpacing=0 cellPadding=2 width=1200 align=center border=1>
8.<TR>
9.<TD align=middle width="10%" height=20 rowSpan=2>项目 </TD>
10.<TD align=middle width="2%" height=20 rowSpan=2>计量单位 </TD>
11.<TD align=middle width="4%" height=20>满期赔付率 </TD>
jsp中文全称12.</TR>
13.</TABLE>
14.</body>
15.</HTML>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">countifs函数求和
//解释,为何wps打开正常,office-excel打开乱码
生成EXCEL乱码2008-05-24 20:38去年做了一个小查询系统,使用的平台是FreeBSD+apache+php+mysql。由于数据中可能存在生僻字,所以数据库编码使用了我以前常使用的GBK编码。调用数据前首先set names gbk声明,这样显示数据正常。后来需要把数据生成为excel文件,这时问题出来了:php生成的excel文件中所有中文字符都是乱码。
上网查询,说是在head中注明编码,问题依旧,但奇怪的是生成的文件用wps打开是没有问题的,但总不能让使用单位也安装wps吧,虽然那是国产的,而且政府采购的。最后没有办法,只好生成csv文件,这样乱码问题解决了,但是下载下来的文件不能直接用excel打开,而且排版也麻烦。
布局管理器有哪几种清明节放假,恰好程序数据变动,于是一并想解决一下这个问题。试了几个编码,差别不大。周一回到单位突然想起既然wps能够打开,那么证明是微软是不自动检测编码而是强
科技首页模板制使用自己的编码,而微软最常用的编码是gb2312,于是用EMS的mysql管理软件重新生成了一个数据表,编码选择那里果然发现里面也有gb2312编码选择,导入数据库后,把GBK换成gb2312,这样生成的excel文件中汉字乱码问题解决了。信息系统架构师证书
晚上回家,准备把原先数据库编码改为gb2312,但一是偷懒,而是担心转换过程中数据出问题,便在没有修改字符编码的情况下,只是把set names gb2312声明,试着生成excel文件,哈哈,同样没有问题!
到网上搜索了一下:
GBK: 汉字国标扩展码,基本上采用了原来GB2312-80所有的汉字及码位,并涵盖了原Unicode中所有的汉字20902,总共收录了883个符号, 21003个汉字及提供了1894个造字码位。 Microsoft简体版中文Windows 95就是以GBK为内码,又由于GBK同时也涵盖了Unicode所有CJK汉字,所以也可以和Unicode做一一对应。
GB码,全称是GB2312-80《信息交换用汉字编码字符集 基本集》,1980年发布,是中文信息处理的国家标准,在大陆及海外使用简体中文的地区(如新加坡等)是强制使用的唯一中文编码。P-Windows3.2和苹果OS就是以GB2312为基本汉字编码, Windows 95/98则以GBK为基本汉字编码、但兼容支持GB2312。GB码共收录6763个简体汉字、682个符号,其中汉字部分:一级字3755,以拼
音排序,二级字3008,以偏旁排序。该标准的制定和应用为规范、推动中文信息化进程起了很大作用。
GBK编码是中国大陆制订的、等同于UCS的新的中文编码扩展国家标准。GBK工作小组于1995年10月,同年12月完成GBK规范。该编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。
估计正是大陆制订这个关节出了问题,微软正是抓住自己的标准才会出现wps识别而excel不识别的情况。看来标准之争是不得不争啊。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论