jsp导出word 及mht 转码问题
最近做了一个资费查询模块,里面涉及将资费信息导出Word文档和Excel文档,
先说说导出Word文档:
其实就是把响应的类型设为application/msword,然后把内容输出到这个文件就行了
第一步:
先在桌面上新建一个word文档,双击打开,然后另存为.htm文件,会产生一个以.htm结尾的文件
第二步:
把.htm文件扩展名改为.jsp文件,此时它就是一个有word排版格式的jsp文件了,
然后在这个文件前加上:<%@ page contentType="application/msword;charset=gbk"%>
再引入其他相关的类
第三步:把jsp文件中,需要动态显示的东西改成为java代码就行了,通常就会对一个集合或直接就是结果集进行遍历
如:访问
http://localhost:8080/jxtelecom/exportWord.jsp
出现:
不支持,导出只读文件,如果谁解决了,请给我留言,谢谢。
补充:解决乱码问题。
在mht文件中,可以看到汉字的编码变了,如“中国”变为“中国”这种其实 是unicode码的10进制表示,我们在java中一般看到的unicode码都是16进制的。主要写个10进制unicode和16进制unicode转换程序,以后可以参考一下,这个对于这次项目中查询数据并根据模板导出到word中,解决了几周来的乱码问题。 public class TestUnicode {
/**
* 二期导出word文档专用转码方法
* 方法说明:把中文 转为 mht专用的 uncode 10进制编码
* @author peijianwen
* @since 2009-12-01
* @return String
*/
public static String convertUncode10(String s) {
String conStr = "";
// 转码uncode 10进制
for(int i = 0;i<s.length();i++){
char a = s.charAt(i);
conStr += "&#"+ (int)a+";"; //将中文转成10进制的表示
}
return conStr;
}
public static void main(String[] args) {
//将中文转成16进制的表示
System.out.println("\u" + Integer.toHexString('中')); //“\u4e2d”
System.out.println("\u" + Integer.toHexString('中' & 0xffff)); &nb
相关文档:
java(jsp)使用MySql数据库,中文乱码的完整解决方案
mysql是一个小型的开源的数据库,用来自学一些技术是十分方便的。但使用mysql存储数据,也会遇到一些非常恶心的问题,如:中文乱码问题、java驱动程序无法使用的问题(已经解决,详见:http://hi.baidu.com/lauo1988/blog/item/ff0da655bd3e2eceb745ae0b.html)。
......
document.getElementById("flag")在ie中,jsp中的元素没有id值,有name值时,也能查出来,按照name值查。
但是在firefox中,如果没有id值,则查不出来。所以ie中,name和id有时通用;但是firefox中,是有这严格区别的。 ......
<html>
<head>
<title>marquee</title>
<style>
#marq {
width:500px;
height:100px;
border:1px solid red;
overflow:hidden;
}
#mar ......
下面是jsp代码<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page import="com.yourcompany.struts.action.Student" %>
<%@ t ......
Jsp是一个很热门的话题,但让大多数人都头痛的是JSP页面中的乱码问题,笔者身有体会;曾为了解决中文乱码问题郁闷了好几天,试了很多方法都不行。最后在JSP专业人士的帮助下,终于解决。之后笔者曾对此做了一些小的研究。
首先我们先了解一下问题的原因。一般情况在在每个JSP页的头部都有这样一 ......