`
happyqing
  • 浏览: 3152362 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

应用POI,word2007转html

    博客分类:
  • poi
阅读更多

 

poi 3.9

http://poi.apache.org/

 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.poi.xwpf.converter.core.FileImageExtractor;
import org.apache.poi.xwpf.converter.core.FileURIResolver;
import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;
import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFPictureData;
//import org.junit.Assert;
//import org.junit.Test;

public class word07toHtml {

	//@Test
	public static void canExtractImage() throws IOException {
		File f = new File("d:/test/test.docx");
		if (!f.exists()) {
			System.out.println("Sorry File does not Exists!");
		} else {
			if (f.getName().endsWith(".docx") || f.getName().endsWith(".DOCX")) {
				
				// 1) Load DOCX into XWPFDocument
				InputStream in = new FileInputStream(f);
				XWPFDocument document = new XWPFDocument(in);

				// 2) Prepare XHTML options (here we set the IURIResolver to
				// load images from a "word/media" folder)
				File imageFolderFile = new File("d:/test/media");
				XHTMLOptions options = XHTMLOptions.create().URIResolver(
						new FileURIResolver(imageFolderFile));
				options.setExtractor(new FileImageExtractor(imageFolderFile));
				//options.setIgnoreStylesIfUnused(false);
				//options.setFragment(true);
				
				// 3) Convert XWPFDocument to XHTML
				OutputStream out = new FileOutputStream(new File(
						"d:/test/test.htm"));
				XHTMLConverter.getInstance().convert(document, out, options);
			} else {
				System.out.println("Enter only MS Office 2007+ files");
			}
		}
	}
	
	public static void main(String args[]) {
		try {
			canExtractImage();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

其中org.apache.poi.xwpf.converter需要扩展包

如果你的项目用到了maven做如下配置即可,若果没用maven,请从本文附件下载

1.0.4 对应的是 poi 3.9

1.0.0 对应的是 poi 3.8

import org.apache.poi.xwpf.converter.xhtml.XHTMLConverter;
import org.apache.poi.xwpf.converter.xhtml.XHTMLOptions;

所需jar包

<dependencies>
	<dependency>
		<groupId> fr.opensagres.xdocreport</groupId>
		<artifactId> org.apache.poi.xwpf.converter.core</artifactId>
		<version> 1.0.4</version>
	</dependency>
	<dependency>
		<groupId> fr.opensagres.xdocreport</groupId>
		<artifactId> org.apache.poi.xwpf.converter.xhtml</artifactId>
		<version> 1.0.4</version>
	</dependency>
</dependencies>

 

如果报错:

java.lang.ClassNotFoundException: org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTSectPrImpl$1HeaderReferenceList

请添加 ooxml-schemas-1.1.jar

java.lang.ClassNotFoundException: org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTBodyImpl$1TblList

也是需要 ooxml-schemas-1.1.jar

用maven的会自动下来,没用maven的请从本文附件下载ooxml-schemas-1.1.rar,需要解压

 

不过,发现转换后的table没有边框,有待解决

 

java word转html(03,07) jacob,openoffcie,poi

http://happyqing.iteye.com/blog/2086437

 

分享到:
评论
9 楼 qdfqdf 2017-04-24  
java_zhenke 写道
非常感谢楼主,但是为何我执行转换报错:
org.apache.poi.xwpf.converter.core.XWPFConverterException: java.lang.NullPointerException
还望楼主帮忙解答一下


你弄个简单的docx应该能转,你那个docx可能太复杂了
8 楼 丿一小凯_ 2016-08-18  
word中的统计图(条形统计图等)无法显示啊
7 楼 java_zhenke 2015-06-29  
非常感谢楼主,但是为何我执行转换报错:
org.apache.poi.xwpf.converter.core.XWPFConverterException: java.lang.NullPointerException
还望楼主帮忙解答一下
6 楼 轮回稻草人 2015-03-31  
不知道木有边框这个问题楼主有木有解决?
5 楼 a906910 2014-10-09  
我用了后 图片没有出来 哪里配置出问题了?生成的html没有img标签
4 楼 happyqing 2014-08-28  
宋_良 写道
楼主、我不太明白你这句话"用maven的会自动下来,没用maven的请从本文附件下载,需要解压" 没用maven的  在这里下哪个附件? 你这里貌似只有这些jar包  我怎么配你上面maven的xml配置文件?

1.你没看到附件中有个ooxml-schemas-1.1.rar吗?iteye只允许上传10M大小的附件,所以压缩了一下。
2.你若会用maven就会配了,想配建议先看看maven。
3 楼 宋_良 2014-08-25  
楼主、我不太明白你这句话"用maven的会自动下来,没用maven的请从本文附件下载,需要解压" 没用maven的  在这里下哪个附件? 你这里貌似只有这些jar包  我怎么配你上面maven的xml配置文件?
2 楼 happyqing 2014-08-05  
yuanbian007 写道
楼主很细心,要是早点看到这篇文章会省我很多事。

呵呵呵
1 楼 yuanbian007 2014-08-05  
楼主很细心,要是早点看到这篇文章会省我很多事。

相关推荐

Global site tag (gtag.js) - Google Analytics