java poi word 书签 java poi 书签 - 电脑 - 【南平电脑网】_南平电脑维修_南平笔记本电脑维修_监控安装_市区上门维修
公司动态

java poi word 书签 java poi 书签

摘要:怎么使用JAVA,POI读写word文档 如何使用JAVA、POI读写word文档??能不能将一个word的内容完全读过来,放到一个新生成的word文件中去,要求能将word中的表格、图片等保留,格式...

发布日期:2020-11-12

java poi word 书签

怎么使用JAVA,POI读写word文档

如何使用JAVA、POI读写word文档??能不能将一个word的内容完全读过来,放到一个新生成的word文件中去,要求能将word中的表格、图片等保留,格式不变。

最好能给个例子?网上多是很早以前的那个解决方法如下:,只能读文本内容,且新生成的word文件打开时总是要提示选择编码,不太好用,希望能有新的解决方案??!!poi操作word1.1 添加poi支持:包下载地址1.2 POI对Excel文件的读取操作比较方便,POI还提供对Word的DOC格式文件的读取。

但在它的发行版本中没有发布对Word支持的模块,需要另外下载一个POI的扩展的Jar包。

下载地址为;下载extractors-0.4_zip这个文件2、提取Doc文件内容 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(); } }3、写入Doc文档 import java.io.ByteArrayInputStream; import java.io.FileOutputStream; 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; public class WordWriter { public static boolean writeDoc(String path, String content) { boolean w = false; try { // byte b[] = content.getBytes("ISO-8859-1"); byte b[] = content.getBytes(); ByteArrayInputStream bais = new ByteArrayInputStream(b); POIFSFileSystem fs = new POIFSFileSystem(); DirectoryEntry directory = fs.getRoot(); DocumentEntry de = directory.createDocument("WordDocument", bais); FileOutputStream ostream = new FileOutputStream(path); fs.writeFilesystem(ostream); bais.close(); ostream.close(); } catch (IOException e) { e.printStackTrace(); } return w; } public static void main(String[] args) throws Exception{ String wr=WordReader.readDoc("D:\\test.doc"); boolean b = writeDoc("D:\\result.doc",wr);

java poi导出word 可以设置格式吗

1. 读取word 2003及word 2007需要的jar包2. 读取 2003 版本(.doc)的word文件相对来说比较简单,只需要 poi-3.5-beta6-.jar 和 poi-scratchpad-3.5-beta6-.jar 两个 jar 包即可, 而 2007 版本(.docx)就麻烦多,我说的这个麻烦不是我们写代码的时候麻烦,是要导入的 jar 包比较的多,有如下 7 个之多:3. 1. openxml4j-bin-beta.jar4. 2. poi-3.5-beta6-.jar5. 3. poi-ooxml-3.5-beta6-.jar6. 4 .dom4j-1.6.1.jar7. 5. geronimo-stax-api_1.0_spec-1.0.jar8. 6. ooxml-schemas-1.0.jar9. 7. xmlbeans-2.3.0.jar10. 其中 4-7 是 poi-ooxml-3.5-beta6-.jar 所依赖的 jar 包(在 poi-bin-3.5-beta6-.tar.gz 中的 ooxml-lib 目录下可以找到)。

11. 2.换行符号12. 硬换行:文件中换行,如果是键盘中使用了"enter"的换行。

13. 软换行:文件中一行的字符数容量有限,当字符数量超过一定值时,会自动切到下行显示。

14. 对程序来说,硬换行才是可以识别的、确定的换行,软换行与字体大小、缩进有关。

15. 3.读取的注意事项16. 值得注意的是: POI 在读取不会读取 word 文件中的图片信息; 还有就是对于 2007 版的 word(.docx), 如果 word 文件中有表格,所有表格中的数据都会在读取出来的字符串的最后。

17. 4.读取word文本内容代码1 import java.io.File;2 import java.io.FileInputStream;3 import java.io.InputStream;4 5 import org.apache.poi.POIXMLDocument;6 import org.apache.poi.POIXMLTextExtractor;7 import org.apache.poi.hwpf.extractor.WordExtractor;8 import org.apache.poi.openxml4j.opc.OPCPackage;9 import org.apache.poi.xwpf.extractor.XWPFWordExtractor;10 11 public class Test {12 public static void main(String[] args) {13 try {14 InputStream is = new FileInputStream(new File("2003.doc"));15 WordExtractor ex = new WordExtractor(is);16 String text2003 = ex.getText();17 System.out.println(text2003);18 19 OPCPackage opcPackage = POIXMLDocument.openPackage("2007.docx");20 POIXMLTextExtractor extractor = new XWPFWordExtractor(opcPackage);21 String text2007 = extractor.getText();22 System.out.println(text2007);23 24 } catch (Exception e) {25 e.printStackTrace();26 }27 }28 }

java用poi导出word文档,我要导出一个表格,表格的单元格中还要有...

有个最简单,不用使用任何 poi 或其他第三方类库的方法生成 excel ,或 word ,你把一个生成好的 word 例子用文件另存为 xml , docx 之类,然后你再直接用记事本去打开这个 docx ,你就会发现是 xml 格式,这个时候,你在程序里面就直接用普通代码生成这个 xml 就可以了。

JAVA使用POI读写word 乱码

写 public static void main(String args[]) throws Exception { XWPFDocument doc = new XWPFDocument(); XWPFParagraph p1 = doc.createParagraph(); p1.setAlignment(ParagraphAlignment.CENTER); p1.setBorderBottom(Borders.DOUBLE); p1.setBorderTop(Borders.DOUBLE); p1.setBorderRight(Borders.DOUBLE); p1.setBorderLeft(Borders.DOUBLE); p1.setBorderBetween(Borders.SINGLE); p1.setVerticalAlignment(TextAlignment.TOP); XWPFRun r1 = p1.createRun(); r1.setBold(true); r1.setText("The quick brown fox"); r1.setBold(true); r1.setFontFamily("Courier"); r1.setUnderline(UnderlinePatterns.DOT_DOT_DASH); r1.setTextPosition(100); XWPFParagraph p2 = doc.createParagraph(); p2.setAlignment(ParagraphAlignment.RIGHT); p2.setBorderBottom(Borders.DOUBLE); p2.setBorderTop(Borders.DOUBLE); p2.setBorderRight(Borders.DOUBLE); p2.setBorderLeft(Borders.DOUBLE); p2.setBorderBetween(Borders.SINGLE); XWPFRun r2 = p2.createRun(); r2.setText("jumped over the lazy dog"); r2.setStrike(true); r2.setFontSize(20); XWPFRun r3 = p2.createRun(); r3.setText("and went away"); r3.setStrike(true); r3.setFontSize(20); r3.setSubscript(VerticalAlign.SUPERSCRIPT); XWPFParagraph p3 = doc.createParagraph(); p3.setWordWrap(true); p3.setPageBreak(true); p3.setAlignment(ParagraphAlignment.BOTH); p3.setSpacingLineRule(LineSpacingRule.EXACT); p3.setIndentationFirstLine(600); XWPFRun r4 = p3.createRun(); r4.setTextPosition(20); r4.setText("To be, or not to be: that is the question: Whether "tis nobler in the mind to suffer The slings and arrows of outrageous fortune, Or to take arms against a sea of troubles, And by opposing end them? To die: to sleep; "); r4.addBreak(BreakType.PAGE); r4.setText("No more; and by a sleep to say we end The heart-ache and the thousand natural shocks That flesh is heir to, "tis a consummation Devoutly to be wish"d. To die, to sleep; To sleep: perchance to dream: ay, there"s the rub; ......."); r4.setItalic(true); XWPFRun r5 = p3.createRun(); r5.setTextPosition(-10); r5.setText("For in that sleep of death what dreams may come"); r5.addCarriageReturn(); r5.setText("When we have shuffled off this mortal coil,Must give us pause: there"s the respectThat makes calamity of so long life;"); r5.addBreak(); r5.setText("For who would bear the whips and scorns of time,The oppressor"s wrong, the proud man"s contumely,"); r5.addBreak(BreakClear.ALL); r5.setText("The pangs of despised love, the law"s delay,The insolence of office and the spurns......."); FileOutputStream out = new FileOutputStream("simple.docx"); doc.write(out); out.close(); }

poi-Java导出word时,能实现在word正文内“插入附件”的效果吗

1、基本替换 用word替换文本是很简单的:首先打开一个文档,执行“编辑一〉替换”(或按“Ctrl+H”组合键),打开“查找和替换”对话框,在“查找内容”右侧的方框中输入需要替换的字符,在“替换为”右侧的方框中输入替换后的字符,然后单击“全部替换”按钮即可。

2、格式替换 如果需要突出文档中某些特定字符,可以通过格式替换的方法将那些字符设置成不同字体格式(如“加粗、倾斜”等)。

打开“查找和替换”对话框,在 “查找内容”和“替换为”右侧的方框中输入同样字符,然后将光标定在“替换为”右侧方框中,单击“高级”按钮展开高级选项,单击其中的“格式”按钮,在随后弹出的快捷菜单中,选择“字体”选项,打开“替换字体”对话框,将字型设置成“加粗倾斜”格式,点击“确定”返回,再单击“全部替换”按钮即可。

3、空行替换 用Word编辑从网上粘贴过来的文本时,常常含有多余空行,手工删除既累又烦,何不用空行替换的方法呢?打开“查找和替换”对话框,在“查找内容”右侧的方框中输入“^p^p”(p一定是小写格式),在“替换为”右侧的方框中输入“^p”,然后根据空行的多少,反复按几次“全部替换”按钮,就完工了。

4、图片替换 如果一篇文档中,多处需要输入某个小图片,那么先在需要输入图片的地方输入某个特殊字母(笔者用的是五笔输入法,所以通常用字母“z”),待文章全部录入完成后,通过“插入一〉图片一〉来自文件”等方法将小图片插入一个到文档中,并选中该图片,执行“复制”操作,再打开“查找和替换”对话框,在 “查找内容”后面的方框中输入字母“z”(默认情况下,可以不考虑大小写问题),在“替换为”后面的方框中输入“^c”,单击“全部替换”按钮就行了。

5、通配替换 如果要想将文档中的书名(包含在书名号“《》”之间的部分)统一设置“黑体、红色”,可以利用通配符替换来实现:打开“查找和替换”对话框,展开 “高级”选项,选中其中的“使用通配符”选项,在“查找内容”中输入“《·》”,然后将光标定在“替换为”右侧的方框中,不输入内容,打开“替换字体”对话框,将“中文字体”和“字体颜色”分别设置为“黑体”和“红色”,点击“确定”返回,再按一下“全部替换”按钮即可。

6、书签替换 在文档录入时,先将文档中要多次出现的字符(如“比上年同期增长128%”)输入到文档中,然后选中这一特定字符,执行“插入一〉书签”命令,打开“书签”对话框,输入一个便于理解的名称(如“zzb1”),然后依次按“添加一取消”按钮返回。

以后需要输入该字符时,执行“插入-〉引用-〉交叉引用”命令,打开“交叉引用”对话框,按“引用类型”右侧的下拉按钮,在随后出现的下拉列表中,选择“书签”选项,然后选中其中需要的书签名称,再单击“插入”按钮即可。

通过这种方法输入的字符,如果对定义的书签内容进行了修改(如“比上年同期增长127.5%”),只要按“Ctrl+A”。

组合键选中全文,再按一下F9功能键,后面引用的内容会一次性作出相应的更改,起到文内批量替换的效果。

7、粘贴替换 在文档录入时,先将文档中要多次出现的字符(如“比上年同期增长128%”等)输入到文档中,然后选中这一特定字符,执行“复制”操作,再将光标定在需要再次输入此字符的位置上,执行“编辑-〉选择性粘贴”命令,打开“选择性粘贴”对话框,选中其中的“粘贴为链接”选项(其它选项不需要更改),点击“确定”返回。

这样,重复进行“选择性粘贴”就可以将上述字符插入到文档多处。

此时,如果修改了最初的字符内容(如“比上年同期增长127.5%”),则后续词条随之更新,也达到了批量替换的目的。

8、大小写替换 如果想将文档中的大(小)写字母,转换成小(大)写格式,可以这样来做:选中需要转换的文档区域,根据转换的实际需要,反复按“shifl+F3”组合键即可。

格式 Microsoft Word X (Mac OS X) Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.doc)成为事实上最通用的标准。

Word文件格式的详细资料并不对外公开。

Word文件格式不只一种,因为随Word软件本身的更新,文件格式也会或多或少的改版,新版的格式不一定能被旧版的程序读取(大致上是因为旧版并未内建支援新版格式的能力)。

微软已经详细公布Word 97的DOC格式,但是较新的版本资料仍未公开,只有公司内部、政府与研究机构能够获知。

业界传闻说某些Word文件格式的特性甚至连微软自己都不清楚。

其他与Word竞争的办公室作业软件,都必须支援事实上最通用的Word专用的档案格式。

因为Word文件格式的详细资料并不对外公开,通常这种兼容性是藉由逆向工程来达成。

许多文字处理器都有汇出、汇入Word档案专用的转换工具,譬如AbiWord或OpenOffice。

(参照文本编辑器当中关于其他竞争软件的说明。

)Apache Jakarta POI是一个开放原始码的Java数据库,其主要目标是存取Word的二进制文件格式。

不久前,微软自己也提供了检视器,能够不用Word程序就检视Word文件。

例:Word ...