一、第三方jar包下载:
在java中将html文件导出到word需要应用到第三方的jar包:采用poi-bin-3.0-FINAL-20070503.zip。可以到http://poi.apache.org/官方网站下载最新版本。
二、开发思路:
采用Java IO将html文件读入到一个临时的String对象中,然后采用poi提供的API生成word文档。
三、开发源代码:
package com.solid.util;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import org.apache.poi.poifs.filesystem.DirectoryEntry;
import org.apache.poi.poifs.filesystem.DocumentEntry;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
/**
* 将html文档转为doc
* @author soildwang
*
*/
public class HtmlToDoc {
/**
* 读取html文件到word
* @param filepath html文件的路径
* @return
* @throws Exception
*/
public boolean writeWordFile(String filepath) throws Exception {
boolean flag = false;
ByteArrayInputStream bais = null;
FileOutputStream fos = null;
String path = "C:/"; //根据实际情况写路径
try {
if (!"".equals(path)) {
File fileDir = new File(path);
if (fileDir.exists()) {
String content = readFile(filepath);
byte b[] = content.getBytes();
bais = new ByteArrayInputStream(b);
POIFSFileSystem poifs = new POIFSFileSystem();
DirectoryEntry directory = poifs.getRoot();
DocumentEntry documentEntry = directory.createDocument("WordDocument", bais);
fos = new FileOutputStream(path + "temp.doc");
poifs.writeFilesystem(fos);
bais.close();
fos.close();
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if(fos != null) fos.close();
if(bais != null) bais.close();
}
return flag;
}
/**
* 读取html文件到字符串
* @param filename
* @return
* @throws Exception
*/
public String readFile(String filename) throws Exception {
StringBuffer buffer = new StringBuffer("");
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(filename));
buffer = new StringBuffer();
while (br.ready())
buffer.append((char) br.read());
} catch (Exception e) {
e.printStackTrace();
} finally {
if(br!=null) br.close();
}
return buffer.toString();
}
public static void main(String[] args) throws Exception {
new HtmlToDoc().writeWordFile("C:/preview4510.html");
}
}
分享到:
相关推荐
大家都知道,通常Java程序需要JVM与OS互动才能运行于本地环境之上,所谓鱼与熊掌不可兼得,这样做虽然极大降低了程序的移植难度,却同时增加了程序的环境要求,因为无论你用什么方法,总需弄个虚拟机才能让你的Java...
JAVA实训作品 这是一个界面简单的java记事本,界面友好,能快捷简单地进行操作,可即时记录身边的事,可把它当做标签使用,充分用到日常生活工作中的记事,方便、简洁。可进行文件的打开、保存、另存为和关闭;可...
每天记录自己的心情啊,或是一些琐事...很方便的!
java Launcher源码
生活琐事作文800字
迷宫琐事 使用 Java 实现的迷宫琐事游戏。 用于 GUI 的 LibGDX 库和用于数据库实现的 SQL Lite。
32 基于Java的物业管理系统的设计与开发查重版 基于Java的物业管理系统的设计与开发查重版全文共28页,当前为第1页。基于Java的物业管理系统的设计与开发查重版全文共28页,当前为第1页。摘要:现在我们社会的发展是...
这个代码教会你如何正确的来出来下订单中需要处理的一些琐事问题,代码直接实现!
这是一个简单的Android应用程序,可循环显示五个正确/错误问题 这是我第一次尝试使用Android应用,因此,我想保持简单 它是在线性视图上设计的,并利用Toast判断答案是否正确 为了简单起见,问题存储在xml中
管理者必须具备相当程度的Shell操控能力与Shell程序设计能力,卧龙小三拥有丰富的主机管理实务经验,以及多年的教学经验,相信这本《实战Linux Shell编程与服务器管理》必能引领读者轻松跨越Bash Shell程序设计的...
Python基础篇-00第零回莫叹琐事催白发,且学Python省年华.flv
全新原生Java影视源码 测试你的琐事 一种基于 Kotlin 并由该框架提供支持的新型琐事 Alexa 游戏。 利用 Quarkus 框架 用于 Lambda(启动)意图处理程序的单元测试 使用./build/manage.sh update脚本快速部署到 AWS ...
测验游戏:编程琐事显示正确的答案
使徒行传 这是我们为学校项目制作的游戏。 这是Mario Bros游戏的琐事问题... 转到displayComics.java并将图像名称添加到第20行的数组中 确保添加R.drawable。 放入阵列时,在图像名称的前面。请为此应用使用横向模式。
管理者必须具备相当程度的Shell操控能力与Shell程序设计能力,卧龙小三拥有丰富的主机管理实务经验,以及多年的教学经验,相信这本《实战Linux Shell编程与服务器管理》必能引领读者轻松跨越Bash Shell程序设计的...
代码探索专为 android 制作的编程主题琐事应用程序。
第1~3章简要地介绍了Windows和DirectX编程,创建了一个Windows应用程序模板,让读者能够将精力放在游戏逻辑和图形实现中,而不用考虑Windows和DirectX方面的琐事;第4~5章简要地介绍了一些数学知识并实现了一个...
Spring Boot 2 官方指导手册译文 ...您可以使用 Spring Boot 来创建 Java 应用程序,这些应用程序可以通过使用 java -jar或更传统的 war 部署来启动。我们还提供了一个运行“spring 脚本”的命令行工具。
您将编写一个琐事测验应用程序。 如果您拥有法律或医学等其他专业领域,您将很高兴知道多项选择题应用程序是App Store上最受欢迎的教育应用程序之一! 您将学到什么 如何以编程方式更改UI元素,例如标签和按钮。 ...