public class WordUtil { //2003 public static List<String> getWordTitles2003(String path) throws IOException{ File file = new File(path); String filename = file.getName(); filename = filename.substring(0, filename.lastIndexOf(".")); InputStream is = new FileInputStream(path); HWPFDocument doc = new HWPFDocument(is); Range r = doc.getRange(); List<String> list = new ArrayList<String>(); for (int i = 0; i < r.numParagraphs(); i++) { Paragraph p = r.getParagraph(i); // check if style index is greater than total number of styles int numStyles =doc.getStyleSheet().numStyles(); int styleIndex = p.getStyleIndex(); if (numStyles > styleIndex) { StyleSheet style_sheet = doc.getStyleSheet(); StyleDescription style = style_sheet.getStyleDescription(styleIndex); String styleName = style.getName(); if (styleName!=null&&styleName.contains("标题")) { // write style name and associated text // System.out.println(styleName + " -> " + p.text()); // System.out.println(p.text()); String text = p.text(); list.add(text); } } } //TODO 图表跟图片不一样,需另外处理 //得到word数据流 byte [] dataStream = doc.getDataStream(); //用于在一段范围内获得段落数 int numCharacterRuns = r.numCharacterRuns(); // System.out.println("CharacterRuns 数:"+numCharacterRuns); //负责图像提取 和 确定一些文件某块是否包含嵌入的图像。 PicturesTable table = new PicturesTable(doc, dataStream, null, null, null); //文章图片编号 int i = 1; for(int j=0 ; j<numCharacterRuns ; j++){ //这个类表示一个文本运行,有着共同的属性。 CharacterRun run = r.getCharacterRun(j); //是否存在图片 boolean bool = table.hasPicture(run); if(bool){ //返回图片对象绑定到指定的CharacterRun Picture pic = table.extractPicture(run, true); //图片的内容字节写入到指定的输出流。 pic.writeImageContent(new FileOutputStream("E:\\temp\\"+filename+"_"+i+".jpg")); i++; } } return list; } public static List<String> getWordTitles2007(String path) throws IOException{ InputStream is = new FileInputStream(path); //2007 // OPCPackage p = POIXMLDocument.openPackage(path); // XWPFWordExtractor e = new XWPFWordExtractor(p); // POIXMLDocument doc = e.getDocument(); List<String> list = new ArrayList<String>(); XWPFDocument doc = new XWPFDocument(is); XWPFParagraph[]paras = doc.getParagraphs(); for (XWPFParagraph graph : paras) { String text = graph.getParagraphText(); String style = graph.getStyle(); if ("1".equals(style)) { // System.out.println(text+"--["+style+"]"); }else if ("2".equals(style)) { // System.out.println(text+"--["+style+"]"); }else if ("3".equals(style)) { // System.out.println(text+"--["+style+"]"); }else{ continue; } list.add(text); } return list; } public static void main(String[] args) throws IOException { String path = "E:/temp/poi_test.doc"; List<String> list = new ArrayList<String>(); if (path.endsWith(".doc")) { list = getWordTitles2003(path); }else if (path.endsWith(".docx")) { list = getWordTitles2007(path); } for (String title : list) { System.out.println(title); } } }
相关推荐
标题中的“poi读取word 2007简单文本框值”指的是使用Apache POI库来读取Microsoft Word 2007文档中简单文本框内的文本内容。Apache POI是一个流行的开源Java库,用于处理Microsoft Office格式的文件,如Word(.docx...
POI无法读取到word每一段所在的页码。我给出了代码和所有的解释,用POI读取word中的页码。也算是小方法了,基本很准确,为什么要加一个基本呢?因为,分页标志符号在第一行为空白行的时候没有分页符!!所以你的文档...
在本主题中,我们将深入探讨如何使用POI库来导出Word文档,并进行页眉、页脚和标题的设置。这个过程涉及到对Word文档的高级布局控制,对于自动化报告生成或批量创建文档非常有用。 1. **Apache POI简介** Apache ...
在java中使用POI向word输出文字,并解决文件输出换行符无法写入word的问题。
Apache POI 解析 Word 2007 文本及图片 Apache POI (Poor Obfuscation Implementation) 是一个 Java 库,用于读取和写入 Microsoft Office 文件,包括 Word、Excel、PowerPoint 等。 Apache POI 提供了对 Word ...
Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Word(.doc, .docx)、Excel(.xls, .xlsx)等。在本教程中,我们将重点讨论如何利用Apache POI 3.13版本来导出Word文档,并结合图片操作。 ...
使用aspose.words,获取word文件中的标题,批注,批注所在标题,标题序号,在书签处插入图片,在指定文字处插入图片等
Apache POI是一个强大的Java库,专门用于处理Microsoft Office格式的文件,如Word(.doc, .docx)、Excel(.xls, .xlsx)、PowerPoint(.ppt, .pptx)等。通过使用POI,开发者可以创建、读取、修改这些文件,并且将...
下面是一个简单的代码示例,展示了如何使用POI创建一个包含标题和内容的Word文档: ```java import org.apache.poi.xwpf.usermodel.*; public class WordExporter { public static void main(String[] args) ...
Apache POI提供了HWPF(Horrible Word Processor Format)用于处理老版本的Word(.doc),而XWPF(XML Word Processing Format)用于处理新版本的Word(.docx)。由于描述中没有明确指出是哪种类型的Word文件,我们...
对于Word文档,POI提供了HWPF(Horrible Word Processor Format)组件,用于处理旧版的Word 97/2000/2003文件(.doc),而XWPF组件则用于处理较新的OpenXML格式(.docx)。 转换Word到HTML的过程涉及以下几个步骤:...
### 使用POI操作Word文档详解 #### 一、概述 Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 文件格式,包括 Word、Excel 和 PowerPoint。对于 Word 文档(.docx),Apache POI 提供了 XWPF 模块来...
标题中的“poi转word含包”指的是使用Apache POI库将数据从Excel(通常使用POI处理)转换为Microsoft Word文档。Apache POI是Java的一个开源项目,它提供了API来读取、创建和修改Microsoft Office格式的文件,包括...
在IT行业中,处理各种文件格式转换是常见的任务之一。...如果你在使用Apache POI时遇到困难,建议查阅官方文档、示例代码以及开发者社区中的讨论,以便获取更多帮助。记得,持续学习和不断实践是解决这类问题的关键。
这通常涉及创建`<p>`标签表示段落,`<h1>`, `<h2>`等标签表示标题,`<img>`标签插入图片,以及使用CSS来复制原始Word文档的样式。 6. **事例代码**:压缩包中可能包含了一个示例代码,展示了如何使用POI完成上述...
Java POI库是Apache软件基金会开发的一个开源项目,专门用于读写Microsoft Office格式的文件,如Word、Excel等。在本场景中,我们主要关注如何使用Java POI处理Word文档,特别是通过模板来生成新的Word报告。这个...
### POI导出Word的几种方法 在Java开发过程中,特别是在使用Grails框架时,我们经常需要处理文档的生成和转换任务。其中一种常见的需求就是将数据导出为Word文档。Apache POI库提供了一种非常高效且灵活的方式来...
标题中的"Java 解析WORD_POI word_java pio_pressureulb_word解析"指出了主要的技术点:使用Java的Apache POI库解析Word文档。Apache POI提供了一个名为HWPF(Horrible Word Processor Format)的API用于处理旧版的....
可以获取幻灯片的标题、内容、图片、形状以及动画和过渡效果。 5. **性能优化**:由于Android设备的内存限制,处理大型Office文档时需要注意内存管理。可以采用流式处理或者分块读取的方式,减少内存占用。 6. **...
然而,传统的Apache POI库虽然强大,但在处理复杂的Word格式和排版时可能会变得较为繁琐。这时,PageOffice提供了一种更高效、更便捷的解决方案,尤其适用于动态创建和编辑Word文档。 PageOffice是一款由 ...