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 ...
使用aspose.words,获取word文件中的标题,批注,批注所在标题,标题序号,在书签处插入图片,在指定文字处插入图片等
Apache POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,如Word(.doc, .docx)、Excel(.xls, .xlsx)等。在本教程中,我们将重点讨论如何利用Apache POI 3.13版本来导出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完成上述...
### POI导出Word的几种方法 在Java开发过程中,特别是在使用Grails框架时,我们经常需要处理文档的生成和转换任务。其中一种常见的需求就是将数据导出为Word文档。Apache POI库提供了一种非常高效且灵活的方式来...
Java POI库是Apache软件基金会开发的一个开源项目,专门用于读写Microsoft Office格式的文件,如Word、Excel等。在本场景中,我们主要关注如何使用Java POI处理Word文档,特别是通过模板来生成新的Word报告。这个...
标题中的"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是一款由 ...