最近由于项目需要实现,在上传的word附件里面动态的添加文字辨识,来区分版本,所以本人做了 一些研究,由于安全性考虑项目都是部署在linux上的,所以一些依赖windows dll组件的实现方案全部被我放弃了,再说了,那些方案也不安全,因为我这是合同系统,有第三方的组件是很危险的.但是 除了dll组件之外的方案,都不尽人意,最好的poi以前只是勉强读取之类的,想要坐到修改里面的内容,并且不影响里面格式,还是挺困难的.经过一番艰难险阻,最终成功找出了一个方案,虽然只是支持2007以上版本,我觉得也够用了 毕竟现在都2012年了,ie6也马上下台了,html5,javascript2,nodejs,nosql,各种技术不断雀跃,我们要是在固步自封,不知道天朝合适能成为天堂,
不扯了,下面是代码:
package test;
import java.io.File;
import java.io.FileOutputStream;
import org.apache.poi.POIXMLDocument;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
public class TestPoi {
/**
*
* @param args
*/
public static void main(String[] args) {
try {
//获得word的pack对象
OPCPackage pack = POIXMLDocument.openPackage("files\\11.docx");
//获得XWPFDocument对象
XWPFDocument doc = new XWPFDocument(pack);
//输出doc body中包含的元素个数
System.out.println(doc.getBodyElements().size());
//输出pack中包含的的part个数,这里就是word文档的页数
System.out.println(pack.getParts().size());
//获得第一个段落对象
XWPFParagraph paragraph = doc.getParagraphs().get(0);
//段落的格式,下面及个设置,将使新添加的文字向左对其,无缩进.
paragraph.setIndentationLeft(0);
paragraph.setIndentationHanging(0);
paragraph.setAlignment(ParagraphAlignment.LEFT);
paragraph.setWordWrap(true);
//在段落中新插入一个run,这里的run我理解就是一个word文档需要显示的个体,里面可以放文字,参数0代表在段落的最前面插入
XWPFRun run = paragraph.insertNewRun(0);
//设置run内容
run.setText("finish");
run.setFontFamily("宋体");
run.setBold(true);
//因为不支持直接保存会原有对象,或者我不会,只能新保存一个文件,然后将原来的删除,将新的文件重命名回原文件名.
File oldFile = new File("files\\11.docx");
File newFile = new File("files\\22.docx");
FileOutputStream fos = new FileOutputStream(newFile);
doc.write(fos);
fos.flush();
fos.close();
pack.close();
System.out.println(oldFile.delete());
System.out.println(newFile.renameTo(oldFile));
} catch (Exception e) {
e.printStackTrace();
}
}
}
注释写了很明白了,因为poi的文档相当于没有,里面的每个函数,我都是自己试出来的,没办法,不知道为什么他们不维护api,就算是试验阶段,也应该写出来,要不然就扔出来一个jar,谁知道你是干什么的.
代码很简单,就是实现了在word文档的第一行插入"finish"字样,这里是插入不会影响同一行的文字,我没有找到直接保存修改的功能,只能saveas一个新文件,然后重命名回去.如果有童鞋知道怎么实现,还望给我回复.
项目地址:http://download.csdn.net/detail/qq413041153/4492055
发原创帖子不宜,实验方法更不易,还望转载时注明出处!
更多详细信息请查看
java教程网 http://www.itchm.com/forum-59-1.html
分享到:
相关推荐
在标题和描述中提到的“poi3.8操作word”,意味着我们将探讨使用Apache POI 3.8版本来操作Microsoft Word文档的详细知识。 Apache POI 3.8是该项目的一个稳定版本,发布于2012年,支持读取、创建和修改Word文档。...
4. **代码实现**:在实际操作中,你需要遍历Word文档的每一个元素,创建对应的HTML标签并添加样式。对于Excel,你需要构建HTML表格结构,处理单元格的数据和样式。这通常涉及到大量的字符串拼接和条件判断。 5. **...
Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel(.xls和.xlsx)、Word(.doc和.docx)等。在Java环境中,Apache POI库提供了丰富的API,使得开发者能够方便地读取、写入以及操作这些...
11. **poi3.8版本.rar**:这可能是整个Apache POI 3.8的源码或附加资源,方便开发者进行深入研究或定制开发。 使用这些库,开发者可以创建Java应用程序来导入和导出Excel文件,例如,创建新的工作簿,添加工作表,...
《深入理解POI3.8:Java操作Office文档的利器》 在Java编程领域,处理Office文档是一项常见的任务,例如读取、写入Excel表格,编辑Word文档等。这时,Apache POI库就成为了开发者的得力助手。本文将详细探讨POI3.8...
Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel(XLS、XLSX)、Word(DOC、DOCX)等。在Java环境中,POI库提供了丰富的API,使得开发者能够方便地读取、写入和操作这些文件。在给定的...
在给定的标题“Excel操作工具poi3.8”中,我们关注的是POI 3.8版本,这是一个适用于处理Excel文件的强大工具。在这个版本中,用户可以进行数据读取、写入、格式化以及复杂的公式计算等操作。 首先,我们需要理解...
标题中的"poi3.8jar包"指的是Apache POI项目的3.8版本的Java库,这个库以JAR(Java Archive)文件的形式提供,便于Java开发者在他们的应用中集成对Office文档的支持。 Apache POI的主要功能: 1. **Excel处理**: ...
Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。POI 3.8是该项目的一个较早版本,它提供了对Office文档的读写支持,尤其在Java环境中非常实用。这个压缩包包含的6...
标题中的"poi3.8+poi-pdf+poi-core.rar"提到了三个主要部分:POI 3.8 版本、poi-pdf 1.0 和 poi-core 1.0。 1. **POI 3.8**: 这是Apache POI的一个稳定版本,发布于2012年3月26日。它包含多个子模块,如: - **poi...
在网上找了很久相关的资料,都是不怎么完整的,大部分都是word03(doc),excel转html,代码不支持2007, 本人找到总结的word07转html的方法
Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。在给定的压缩包“poi 3.8和4.1.2.rar”中,包含了两个不同版本的Apache POI库:3.8和4.1.2。这些版本分别代表...
Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Excel、Word和PowerPoint。POI项目由Apache软件基金会维护,为开发者提供了在Java应用程序中读取、写入和修改这些文件的接口。POI 3.8和...
在这个"导入excel 导出excle poi3.8 全量包"中,主要关注的是使用POI 3.8版本来操作Excel文件。这个版本的POI提供了一套完整的API,允许开发者在Java环境中读取、写入和修改Excel文件,而无需依赖于Microsoft Office...
- **丰富的功能**:POI提供了广泛的API,几乎涵盖了所有Excel和Word的操作,包括复杂的公式计算和样式设置。 - **社区支持**:由于是开源项目,Apache POI有一个活跃的开发者社区,遇到问题时可以获取帮助和解决...
poi3.8快速学习指南
标题中的"POI3.8以及3.9的API"指的是这两个版本的API接口文档,是开发者理解和使用POI库的关键资源。API文档详尽地列出了各种类、方法和接口,使得开发者能够有效地利用POI进行文件操作。 在POI 3.8和3.9中,主要...
标题“读写Excel2007 POI3.8”涉及的是使用Apache POI库的3.8版本处理Microsoft Excel 2007文件的方法。Apache POI是Java的一个开源项目,专门用于读取、创建和修改Microsoft Office格式的文件,特别是Excel文件。在...
在标题“poi3.8”中提到的版本3.8是该项目的一个历史版本,发布于2012年9月。这个版本包含了对处理Excel、Word和PowerPoint文件的API改进和修复。 在POI 3.8中,主要的知识点包括: 1. **Excel处理**: - HSSF...
标题中的“POI 3.8 Beta5”指的是Apache POI项目的一个版本,这是一个流行的开源Java库,用于读取、写入和修改Microsoft Office格式的文件,尤其是Excel工作簿。在POI 3.8 Beta5这个版本中,开发者可以利用它来处理...