首先将doc文件另存为xml,并且作为一个模板文件,然后用java程序读出xml的内容,并且将需要替换的内容用数据库中查询出来的 数据进行替换
然后将读出来的内容存为另外一个doc文件然后下载读文件的程序和写文件的程序都有了,就是在读文件的程序中怎样替换读出来的内容
程序如下:package net.btdz.oa.ext.jy;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
public class Test { /**
* @param args
* @throws UnsupportedEncodingException
*/
public static void main(String[] args) throws UnsupportedEncodingException {
// TODO Auto-generated method stub
String s = new String();
String s1 = new String();;
BufferedReader in=null;
BufferedReader in1=null;
try {
in = new BufferedReader(new InputStreamReader(new FileInputStream(new File("e:\\xb.xml")), "UTF-8"));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} try {
while((s = in.readLine())!= null) {
s1+=s+"\n";
}
//需要替换s1中的内容,怎样替换 in.close();
System.out.println("xml的萨芬撒的\n"+s1);
writefile("e:\\xb1.doc",s1);
}
catch(Exception e)
{
System.out.println("file error");
} }
public static void writefile(String path, String content) throws IOException
{
File file=new File(path);
FileWriter fw = new FileWriter(file);
if(file.exists())
{
try {
BufferedWriter bw = new BufferedWriter(fw); bw.write(content);
bw.newLine();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}请教各位大侠,怎么来处理这个问题
s1显示,s1读出来已经是类型
9GfihRXpvx5+AniH4DeK203VoWm06cs1jqSKfKuEHv2YcZXt9DXmVfrVGrCvBVKbumfjlajOhUdK
qrSQUUUVqYhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXsP7M37PWo/HzxxFa
YktfD1mwl1G+A+6n/PND/fboPQZNYXwO+B/iD46+ModF0aEpbIQ97qDqfKtYs8knuT2XqT7ZI/Wv
4T/CrQ/g/wCDrPw9oVuI7eEZkmYDfPJ3dj3Jr5fOs2jgoOjSf7x/h5/5H1mR5NLHzVaqv3a/Hy/z
Oh8NeHtP8J6FZaRpVslnp9nEsMEEYwFUDArToor8rbcndn68kopJbBRRRSGFFFFABRRRQAUUUUAF
FFFAHMfEL4c6D8T/AAvdaD4isY7+wnGcOPmjbs6H+Fh6ivzB/aS/ZH8RfA28m1K0jk1jwk7/ALu/
类似的编码了,
然后将读出来的内容存为另外一个doc文件然后下载读文件的程序和写文件的程序都有了,就是在读文件的程序中怎样替换读出来的内容
程序如下:package net.btdz.oa.ext.jy;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
public class Test { /**
* @param args
* @throws UnsupportedEncodingException
*/
public static void main(String[] args) throws UnsupportedEncodingException {
// TODO Auto-generated method stub
String s = new String();
String s1 = new String();;
BufferedReader in=null;
BufferedReader in1=null;
try {
in = new BufferedReader(new InputStreamReader(new FileInputStream(new File("e:\\xb.xml")), "UTF-8"));
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} try {
while((s = in.readLine())!= null) {
s1+=s+"\n";
}
//需要替换s1中的内容,怎样替换 in.close();
System.out.println("xml的萨芬撒的\n"+s1);
writefile("e:\\xb1.doc",s1);
}
catch(Exception e)
{
System.out.println("file error");
} }
public static void writefile(String path, String content) throws IOException
{
File file=new File(path);
FileWriter fw = new FileWriter(file);
if(file.exists())
{
try {
BufferedWriter bw = new BufferedWriter(fw); bw.write(content);
bw.newLine();
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}请教各位大侠,怎么来处理这个问题
s1显示,s1读出来已经是类型
9GfihRXpvx5+AniH4DeK203VoWm06cs1jqSKfKuEHv2YcZXt9DXmVfrVGrCvBVKbumfjlajOhUdK
qrSQUUUVqYhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXsP7M37PWo/HzxxFa
YktfD1mwl1G+A+6n/PND/fboPQZNYXwO+B/iD46+ModF0aEpbIQ97qDqfKtYs8knuT2XqT7ZI/Wv
4T/CrQ/g/wCDrPw9oVuI7eEZkmYDfPJ3dj3Jr5fOs2jgoOjSf7x/h5/5H1mR5NLHzVaqv3a/Hy/z
Oh8NeHtP8J6FZaRpVslnp9nEsMEEYwFUDArToor8rbcndn68kopJbBRRRSGFFFFABRRRQAUUUUAF
FFFAHMfEL4c6D8T/AAvdaD4isY7+wnGcOPmjbs6H+Fh6ivzB/aS/ZH8RfA28m1K0jk1jwk7/ALu/
类似的编码了,
所以说你有可能在读的过程中s1是doc本身的样式问题。
所以还是建议手动再把xml文件转成doc文件吧。
至于你说的s1?s1是要替换进word文档里的内容。还是要被替换的内容?
如果是要被替换进去的,如果是图片是用base64编码的。
如果是对象(例如向word中插入excel文档),那没办法,不晓得是什么格式。
这个方式现在没法处理。