java操作word模板不借助第三方软件包
2014-05-16 11:11
239 查看
本文针对不借助第三方软件包,纯手工编码,使用java操作word模板的童鞋。
先新建一个文件,命名为:word模板.rtf,然后用写字板打开,按你需要的文件样式设计好模板,然后重命名为.doc或.docx文件都可以。word的编码格式有许多种,比如xml编码的,相比较来说,如果不借助第三方软件包,rtf编码的最简单。可以借助第三方软件包的同学可以考虑使用jacob,不用你自己考虑编码的问题。
对于其中要替换的可变字段,最好用特殊符号“$”标识开始和结尾。例如:“公司名称”,在模板中使用字段“$CNAME$”代替,以免发生错误的替换。
如果是直接用word方式打开模板,将字段改为$CNAME$,,此时用EditPlus或者Ultraedit打开,发现$与CNAME之间可能有许多很明显的其他字符,需要删除,否则无法实现替换。
通过java io流就能读取word模板,但是执行文字替换,不能是简单的写入,要了解如何将汉字转换为rtf编码,下面的方法是将一个字符串content转换为rtf编码:
char[] digital ="0123456789ABCDEF".toCharArray();
StringBuffer sb = new StringBuffer("");
byte[] bs = content.getBytes();//这里采用了电脑默认编码,最好指定编码为GBK,content即为待转的字符串。
int bit;
for(int i = 0; i < bs.length;i++) {
//上面通过getBytes()将汉字转为机内码,然后在这个循环体内的操作是将每个汉字的机内码的二进制表示转换为16进制数,并在前面拼上\’,就是该汉字在rtf中的编码表示。
bit = (bs[i] & 0x0f0) >> 4;
sb.append("\\'");
sb.append(digital[bit]);
bit = bs[i] & 0x0f;
sb.append(digital[bit]);
}
return sb.toString();
返回的结果即为rtf可解析的汉字形式,比如,常见的一个例子:“电子与电脑”通过该方法转换为rtf编码就是:\'B5\'E7\'D7\'D3\'D3\'EB\'B5\'E7\'C4\'D4。
先新建一个文件,命名为:word模板.rtf,然后用写字板打开,按你需要的文件样式设计好模板,然后重命名为.doc或.docx文件都可以。word的编码格式有许多种,比如xml编码的,相比较来说,如果不借助第三方软件包,rtf编码的最简单。可以借助第三方软件包的同学可以考虑使用jacob,不用你自己考虑编码的问题。
对于其中要替换的可变字段,最好用特殊符号“$”标识开始和结尾。例如:“公司名称”,在模板中使用字段“$CNAME$”代替,以免发生错误的替换。
如果是直接用word方式打开模板,将字段改为$CNAME$,,此时用EditPlus或者Ultraedit打开,发现$与CNAME之间可能有许多很明显的其他字符,需要删除,否则无法实现替换。
通过java io流就能读取word模板,但是执行文字替换,不能是简单的写入,要了解如何将汉字转换为rtf编码,下面的方法是将一个字符串content转换为rtf编码:
char[] digital ="0123456789ABCDEF".toCharArray();
StringBuffer sb = new StringBuffer("");
byte[] bs = content.getBytes();//这里采用了电脑默认编码,最好指定编码为GBK,content即为待转的字符串。
int bit;
for(int i = 0; i < bs.length;i++) {
//上面通过getBytes()将汉字转为机内码,然后在这个循环体内的操作是将每个汉字的机内码的二进制表示转换为16进制数,并在前面拼上\’,就是该汉字在rtf中的编码表示。
bit = (bs[i] & 0x0f0) >> 4;
sb.append("\\'");
sb.append(digital[bit]);
bit = bs[i] & 0x0f;
sb.append(digital[bit]);
}
return sb.toString();
返回的结果即为rtf可解析的汉字形式,比如,常见的一个例子:“电子与电脑”通过该方法转换为rtf编码就是:\'B5\'E7\'D7\'D3\'D3\'EB\'B5\'E7\'C4\'D4。
相关文章推荐
- java调用com对第三方软件进行操作
- [转]常用Java开发的第三方软件包 http://www.ixpub.net/thread-2592552-1-1.html
- 苹果ipad教程] iTunes如何备份数据及操作文件(仅限于备份非资料库信息,第三方软件不限)
- 《java-----我的第一款像样的小软件》---运用了jsoup,jmail,多线程,文件的io操作等等
- 快速禁用Win8/8.1系统锁屏而无需借助第三方软件
- Xftp 与ftp 类似,安全性要较高。java实现操作sftp需要第三方的jar包,本例使用
- java常用第三方软件包
- java操作word模板
- JAVA实现自动打开URL对应的网页并保存为图片-不借助第三方API
- java常用第三方软件包
- Java软件开发基础知识梳理之(11)------Java中的GC操作及相关概念
- 苹果ipad教程] iTunes如何备份数据及操作文件(仅限于备份非资料库信息,第三方软件不限)
- 不借助任何第三方软件,使用笔记本(win7)当路由器供其他无线终端上网
- 在java中快速调用第三方软件
- JAVA实现自动打开URL对应的网页并保存为图片-不借助第三方API
- 苹果ipad教程] iTunes如何备份数据及操作文件(仅限于备份非资料库信息,第三方软件不限)
- Java操作word模板文件
- Three20软件引擎之结合第三方FMDB框架操作数据库详解(四)
- 【不需要借助第三方软件如何让电脑速度变快】
- Win8如何不借助第三方软件使用批处理删除缓存文件