社区
Web 开发
帖子详情
请问各位大师:怎样用Java、POI技术来读取Word文档,并把Word文档的原来格式完整地显示在页面上?谢谢,在线恭候。
andy20020202
2009-06-03 09:24:47
请问各位大师:怎样用Java、POI技术来读取Word文档,并把Word文档的原来格式完整地显示在页面上?谢谢,在线恭候。
...全文
932
14
打赏
收藏
请问各位大师:怎样用Java、POI技术来读取Word文档,并把Word文档的原来格式完整地显示在页面上?谢谢,在线恭候。
请问各位大师:怎样用Java、POI技术来读取Word文档,并把Word文档的原来格式完整地显示在页面上?谢谢,在线恭候。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
F1226759
2012-10-27
打赏
举报
回复
package com.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.ObjectInputStream.GetField;
import org.apache.poi.hpbf.model.MainContents;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.model.PicturesTable;
import org.apache.poi.hwpf.usermodel.CharacterRun;
import org.apache.poi.hwpf.usermodel.Range;
/**
*
* @author 张廷 下午
*
*/
public class WordToHtml {
/**
* 回车符ASCII码
*/
private static final short ENTER_ASCII = 13;
/**
* 空格符ASCII码
*/
private static final short SPACE_ASCII = 32;
/**
* 水平制表符ASCII码
*/
private static final short TABULATION_ASCII = 9;
private String htmlText = "";
/**
* 读取每个文字样式
*
* @param fileName
* @throws Exception
*/
public void getWordAndStyle(String fileName) throws Exception {
FileInputStream in = new FileInputStream(new File(fileName));
HWPFDocument doc = new HWPFDocument(in);
// 取得文档中字符的总数
int length = doc.characterLength();
// 创建图片容器
PicturesTable pTable = doc.getPicturesTable();
htmlText = "<html><head><title>" + doc.getSummaryInformation().getTitle() + "</title></head><body>";
// 创建临时字符串,好加以判断一串字符是否存在相同格式
String tempString = "";
for (int i = 0; i < length - 1; i++) {
// 整篇文章的字符通过一个个字符的来判断,range为得到文档的范围
Range range = new Range(i, i + 1, doc);
CharacterRun cr = range.getCharacterRun(0);
if (pTable.hasPicture(cr)) {
// 读写图片
this.readPicture(pTable, cr);
this.readPicture(pTable, cr);
} else {
Range range2 = new Range(i + 1, i + 2, doc);
// 第二个字符
CharacterRun cr2 = range2.getCharacterRun(0);
// 当前字符
char currentChar = cr.text().charAt(0);
// 判断是否为回车符
if (currentChar == ENTER_ASCII)
tempString += "<br/>";
// 判断是否为空格符
else if (currentChar == SPACE_ASCII)
tempString += " ";
// 判断是否为水平制表符
else if (currentChar == TABULATION_ASCII)
tempString += " ";
// 比较前后2个字符是否具有相同的格式
boolean flag = compareCharStyle(cr, cr2);
String fontStyle = "<span style='font-family:" + cr.getFontName() + ";font-size:" + cr.getFontSize() / 2 + "pt;";
if (cr.isBold())
fontStyle += "font-weight:bold;";
if (cr.isItalic())
fontStyle += "font-style:italic;";
if (flag && i != length - 2)
tempString += currentChar;
else if (!flag) {
htmlText += fontStyle + "'>" + tempString + currentChar + "</span>";
tempString = "";
} else
htmlText += fontStyle + "'>" + tempString + currentChar + "</span>";
}
htmlText += "</body></html>";
this.writeFile(htmlText);
}
}
}
cheniqit1
2011-03-09
打赏
举报
回复
POI提供对Word的DOC格式文件的读取。但在它的发行版本中没有发布对Word支持的模块,需要另外下载一个POI的扩展的Jar包。用户可以到 http://www.ibiblio.org/maven2/org/textmining/tm-extractors/0.4/下载
参考地址
http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380143fd3d1027fa3c215cc791a061b2da4ac2755515e8e8061375ff21c41abb665346c523db091cb8c4adfbc94282d8a2d3e7316864010d018aacc4238d565cd1abfa05bbae1e733e3b9a2d7c82550dd220f6df3f39c5b7051972fa6033093b1e942022b13ad9c43728f2f&p=9957da15d9c747b42aa9c7710b0a&user=baidu&fm=sc&query=POI%B6%C1%C8%A1word%B8%F1%CA%BD&qid=e96f367c08587475&p1=4
windwordman
2011-03-09
打赏
举报
回复
经各方面调查确实不能取出WORD格式.要导出WORD只能通过HTML的方式建立WORD文档
tian_xuezhi
2009-09-12
打赏
举报
回复
你去读一下POI官方网站吧。POI并不能深入支持WORD,只能把WORD的基本内容读出来,什么格式之类都没法读取,更不用说表格、图片之类的东西。
因为做这个事情的人已经被微软挖走了。
wulin5050
2009-09-12
打赏
举报
回复
我也想知道
zings
2009-08-11
打赏
举报
回复
我也遇到这个问题 。。。 郁闷。。。怎么能让word中的格式不变的读取出来呢???楼主解决了给个方法啊!!!!我读出来的都没有格式。。。。
andy20020202
2009-06-03
打赏
举报
回复
[Quote=引用 5 楼 JackRui2008 的回复:]
利用POI在导出excel的时候用
response.setContentType("application/vnd.ms-excel");
导出word的时候用
response.setContentType("application/msword");
[/Quote]
[color=#800080]
不过,还是谢谢美女的帮助,难得见到一大美女!!![/
color]
andy20020202
2009-06-03
打赏
举报
回复
这个不行吧,美女,这个好像是下载吧?
JackRui2008
2009-06-03
打赏
举报
回复
利用POI在导出excel的时候用
response.setContentType("application/vnd.ms-excel");
导出word的时候用
response.setContentType("application/msword");
andy20020202
2009-06-03
打赏
举报
回复
这个方法我试过了,但读取出来的仍然只是纯文本格式 的,没有word本身的格式。
sprite26
2009-06-03
打赏
举报
回复
public static String readDoc(String doc) throws Exception {
// 创建输入流读取DOC文件
FileInputStream in = new FileInputStream(new File(doc));
WordExtractor extractor = null;
String text = null;
// 创建WordExtractor
extractor = new WordExtractor();
// 对DOC文件进行提取
text = extractor.extractText(in);
return text;
}
public static void main(String[] args) {
try{
String text = WordReader.readDoc("c:/test.doc");
System.out.println(text);
}catch(Exception e){
e.printStackTrace();
}
}
网上搜了一个,你先看下能用不,俺没试过,http://www.ibiblio.org/maven2/org/textmining/tm-extractors/0.4/还要添加个这个扩展包
andy20020202
2009-06-03
打赏
举报
回复
谢谢关注
可以读取的,继续关注。
sprite26
2009-06-03
打赏
举报
回复
POI无法读取word文档,只能读取excel,JXL好像EXCEL和word都可以读取
andy20020202
2009-06-03
打赏
举报
回复
继续等待高手指点呀/
Apache
POI
完整
接口文档(英文版).zip
这个压缩包“Apache
POI
完整
接口文档(英文版).zip”包含的是Apache
POI
的
完整
API文档,为开发者提供了详细的
技术
参考,便于理解和使用该库进行
Java
编程。 Apache
POI
API 提供了丰富的类和接口,使得开发者可以...
poi
安装包及文档说明
这个压缩包包含了Apache
POI
的安装包以及相关的文档资料,帮助用户了解如何在
Java
环境中使用
POI
库来
读取
、写入和操作这些Office文件。 一、Apache
POI
简介 Apache
POI
是由Apache软件基金会开发的一个项目,它的...
05-课程分类管理(新)_图片分类管理
- **资源**:在官网上可以找到详细的文档和
技术
支持,以及各个版本的下载链接。 #### 在 edu-web 模块中集成
POI
为了在 edu-web 模块中利用 Apache
POI
的功能,需要进行以下步骤: 1. **添加依赖**:首先,在...
JAVA
获取word书签内容_
java
操作word可操作书签
最近有个需求,在word模板文档上设置书签,然后从数据库中查询数据,填充到word 文档书签位置,刚拿到需求时,使劲在网上找资料。幻想第三方jar包,帮我实现。有Apatch 的
POI
,
java
2word,jcob等,一直让我无法实现。...
java
编辑
word文档
,向
word文档
尾部添加图片
SpireDoc.jar(使用SprieDocfor
Java
),有免费版(有水印)和付费版,各位可以根据甲方掏不掏钱来决定用哪个(手动狗头)官网地址在这里:https://www.e-iceblue.cn/Downloads/Free-Spire-Doc-
JAVA
.html; 第二步 ...
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章