`
18335864773
  • 浏览: 22334 次
文章分类
社区版块
存档分类
最新评论

[转载]JAVA获取word表格中数据的方案

阅读更多

上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享。

        两个方案分别是:一,用POI的TableIterator获取表格中的数据;二,用PageOffice来获取。

  为什么说是两个相对最佳的方案呢?因为两个方案都各有优缺点,POI的优点很明显,就是免费,这正是PageOffice的缺点,PageOffice是一个国产的商业Office组件;POI的缺点有点多,接口复杂调用起来比较麻烦,尤其是不好读取word指定位置处的内容。由于获取表格数据的代码是在服务器端执行的,所以要求很高的代码质量,要考虑到代码执行效率问题、用户请求并发问题、大文档执行慢阻塞页面的问题等等,POI的架构属于仿VBA接口的模型,比VBA代码还要复杂,在调用方便上未做任何优化,光看代码都觉得头疼。所以在实际使用的过程中会遇到这些问题需要自己解决,相对来说这正是PageOffice的优点,使用PageOffice的话,就不会遇到这些问题,因为PageOffice的获取word中表格数据的工作是在客户端执行的,确实也符合了分布式计算思想,减轻服务器端压力,还有个强悍的功能,PageOffice可以从word表格中用很简单一句代码把图片提取出来!!!

  PageOffice虽是收费的,但是事半功倍,而且还能实现许多POI无法实现的功能。如果确实预算紧张,还是需要用POI,再难用也要捏着鼻子用了……,闲话少撤,看代码实现。

  PageOffice获取word表格中数据的核心代码:

    WordDocument doc = new WordDocument(request,response);
    DataRegion dataReg = doc.openDataRegion("PO_table");
    Table table = dataReg.openTable(1);
    String cellValue = table.openCellRC(1,2).getValue(); //获取书签“PO_table”中表格里第1行第2列单元格的值
    doc.close();

  以上代码是从例子代码里拷贝出来的,可以从PageOffice的官网下载中心下载“PageOffice for JAVA ”,把PageOffice开发包里的Samples4运行起来,看示例(二、16、获取Word文件中表格的数据)里面的具体代码和实现效果。

  需要说明一点,PageOffice中提到了一个数据区域(DataRegion)的概念,其实所谓的数据区域本质上就是书签,但是这个书签必须以“PO_” 开头。把表格放到数据区域中貌似不方便,但是好处很大,如果word文件中有多个表格的话,可以用数据区域去指定PageOffice获取word中哪个表格的数据,定位非常方便,比方说PO_Table的书签里有一个表格,那么不管这个表格在整个word文件中是第几个表(word中的表格没有名称只有Index,从文件头到末尾依次编号的)用doc.openDataRegion("PO_table").openTable(1);总是可以获取到这个表格的数据,非常方便,用POI就不行了,表格、图片位置移动,代码必须重写。
  就写这么多吧,做个共享,希望对大家都有帮助。

分享到:
评论

相关推荐

    Java读取Word表格内容

    通过Java读取word表格中的内容,将内容存到数据库中,将Word中的图片存到硬盘中

    Java读取多Word文档中指定位置的表格数据或文本内容

    Java读取Word文档中指定位置(可以自己自定义位置)的表格数据或文本内容 * @param filePath 文档路径 * @param start 指定位置开始读取表格数据的该位置上的字符串 * @param end 指定位置开始结束读取表格数据的该...

    在word中动态增加表格并写入数据

    ### 在Word中动态增加表格并写入数据 在日常办公自动化任务中,经常需要将数据自动填充到Word文档中,特别是在报表生成等场景下。本文将详细介绍如何利用C#编程语言实现在Word文档中动态创建表格,并将数据写入到...

    java获取多Word文档中表格顺序不变的表格数据

    java获取多Word文档中表格顺序不变的表格数据 读取文档中的表格数据 * @param filePath 文档路径 * @param tablePoint 查看的表格的ID(第几个表格),若多文档调用该方法处理,需表格位置一致。 * @param total...

    java 生成word表格包括表格插入图片

    如何用java生成动态word表格,以及在表格中插入图片是一个难题,花了两天时间做出来的,希望对大家有帮助 需要jar包:iText-2.1.7.jar, iText-rtf-2.1.7.jar, iTextAsian.jar和jxl.jar 注意前两个jar包的版本要能...

    Java读取Word文档页数

    在Java编程环境中,读取和处理Word文档通常涉及到使用第三方库,因为Java标准库并不直接支持Word文件的操作。本主题将深入探讨如何利用给定的`itextpdf-5.5.9.jar`和`jacob.jar`这两个库来实现Java读取Word文档页数...

    java实现word表格指定位置盖章,并且设置章悬浮于文字之上

    为了在指定位置插入印章,我们需要了解Word中的`Run`(段落中的字符流)、`Table`、`Row`和`Cell`等概念,以及它们在文档中的相对坐标。 3. **创建印章图像** 印章通常是一个PNG或JPEG格式的图片文件,需要提前...

    java实现word表格指定位置盖印,并且设置印悬浮于文字之上,达到跟用实体印在A4纸上盖印一样的效果

    在Apache POI中,可以使用XWPFTable类代表Word中的表格,通过遍历表格的XWPFTableRow和XWPFTableCell对象,找到目标单元格。然后,获取该单元格的XWPFParagraph对象,这些对象代表了单元格中的文本段落。 要在指定...

    Java导出Word文件

    在Java编程环境中,导出Word文件是一项常见的任务,特别是在企业级应用中,如报表生成、文档自动化等场景。本文将详细讲解如何使用Java实现Word文件的导出,并结合提供的资源进行解析。 首先,Java导出Word文件通常...

    java数据源导出WORD文档(包括图片、表格及文本)

    最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘(或运行本机的系统):\WINDOWS\system32目录下。 2、将jacob-1.14.3-x86.dll放在JDK 的 bin ...

    java准确读取word页码

    在Java编程环境中,读取Word文档的页码是一项常见的任务,尤其在处理大量文档数据时。这个场景下,我们通常会使用Apache POI库,这是一个强大的API,专门用于处理Microsoft Office格式的文件,包括Word(.doc和.docx...

    java 动态获取数据库信息生成word(含表格,柱状图),并下载.docx

    Java 动态生成 Word 文档(含表格、柱状图)并下载是指利用 Java 语言动态获取数据库信息,并将其生成为 Word 文档(含表格、柱状图),并提供下载功能。该功能主要应用于数据报表生成和下载,例如测试报告、统计...

    java实现word表格指定位置盖章,并且设置印章悬浮于文字之上

    在Word中,可以通过设置`CTPicture`的`zp`属性(ZOrderPosition)使印章图片浮于文字之上。这通常涉及修改图片的XML表示,确保它的Z轴值大于周围的文本元素。 7. **保存更改**: - 完成所有操作后,使用`...

    任免表(读取word表格里的的模板)

    总的来说,Java中读取Word表格模板的关键在于理解Apache POI库的使用,掌握如何操作`XWPFDocument`、`XWPFTable`和`XWPFTableCell`等对象,以及如何遍历和处理表格数据。对于复杂场景,可能还需要对MS Word文档的...

    Java根据ftl模板生成多表格复杂性word文档

    Java使用FTL(FreeMarker Template Language)模板生成多表格复杂性Word文档是一项常见的技术需求,尤其是在需要自动生成报告或批量处理文档的场景中。FreeMarker是一个强大的、基于模板的Java库,它允许开发者将...

    java运用poi填充word数据并将多个word合并为一个

    本篇文章将详细讲解如何利用Apache POI库在Java中实现Word文档的数据填充以及多文件合并。 1. **Apache POI简介** Apache POI是一个开源项目,提供了一组API来处理Microsoft Office格式的文件,如DOCX(Word 2007...

    Java Poi流 根据Word模板插入相应的文本、表格和图片,生成新的Word报告

    在本主题中,我们将深入探讨如何使用Java POI流处理Word模板,插入文本、表格和图片,以及生成新的Word报告。 1. **Java POI流处理Word模板**: - POI API提供了`XWPFDocument`类来处理`.docx`文件,这是Word 2007...

    java 动态获取数据库信息生成word(含表格,柱状图),并下载

    Springboot Controller中使用service调SQL语句的方法,动态获取数据库信息添加到WORD表格中,检查到的数据绘制为柱形图(直方图)添加到文档中,并生成word(含表格,柱状图)存储到本地,在浏览器下载本地的word文档

    Java操作Word模板实现动态数据输出

    在Java环境中读取Word模板文件并填充数据,通常需要借助第三方库,例如Apache POI。以下是简化的步骤: 1. **导入Apache POI库**:在项目中添加Apache POI依赖。 2. **读取Word模板文件**:使用Apache POI提供的类...

Global site tag (gtag.js) - Google Analytics