废话不多说 直接上代码 需要的jar包 我用的是 poi-3.10.1-20140818.jar
package com.sxdet.water.LeaderDutyGH;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class Editor {
public static void main(String[] args) {
Editor editor = new Editor();
try {
editor.docFile(null, null, null);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 将 html 格式的内容转换成 word文档并提供下载
* @param body html内容
* @param csspath css文件路径
* @param savepath 想要存储的路径
* @throws Exception
*/
public static void docFile(String body,InputStream csspath,String savepath) throws Exception {
//读取 路径下的 css文件的内容
//csspath = new FileInputStream("f:\\layui.css");
String css2 = Editor.getContent(csspath);
String content = "<html><head><style>" + "\\n" + css2 + "</style></head><body>" + body + "</body></html>";
InputStream is = new ByteArrayInputStream(content.getBytes("UTF-8"));
OutputStream os = new FileOutputStream(savepath);
Editor.inputStreamToWord(is, os);
}
/**
* 把is写入到对应的word输出流os中 不考虑异常的捕获,直接抛出
* @param is
* @param os
* @throws IOException
*/
private static void inputStreamToWord(InputStream is, OutputStream os) throws IOException {
POIFSFileSystem fs = new POIFSFileSystem();
fs.createDocument(is, "WordDocument");
fs.writeFilesystem(os);
os.close();
is.close();
}
/**
* 把输入流里面的内容以UTF-8编码当文本取出。 不考虑异常,直接抛出
*
* @param ises
* @return
* @throws IOException
*/
private static String getContent(InputStream... ises) throws IOException {
if (ises != null) {
StringBuilder result = new StringBuilder();
BufferedReader br;
String line;
for (InputStream is : ises) {
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
while ((line = br.readLine()) != null) {
result.append(line);
}
}
return result.toString();
}
return null;
}
}