Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?

简介: 【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?

在Java中读取Word文档中的Excel表格,并在保存文本内容时保留表格的样式,可以使用Apache POI库。Apache POI是一个强大的Java库,用于处理Microsoft Office文档,包括Word和Excel文件。

以下是一个示例代码,演示如何使用Apache POI读取Word文档中的Excel表格,并尝试保留表格的样式:

  1. 首先,确保你已经添加了Apache POI依赖项到你的项目中。如果你使用Maven,可以在pom.xml文件中添加以下依赖项:
<dependencies>
    <!-- Apache POI for Word -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.3</version>
    </dependency>
    <!-- Apache POI for Excel -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml-schemas</artifactId>
        <version>4.1.2</version>
    </dependency>
    <!-- XMLBeans (required by POI) -->
    <dependency>
        <groupId>org.apache.xmlbeans</groupId>
        <artifactId>xmlbeans</artifactId>
        <version>5.1.1</version>
    </dependency>
</dependencies>
  1. 然后,编写Java代码来读取Word文档中的Excel表格,并尝试保留表格的样式:
import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

public class ReadWordWithExcel {
   
    public static void main(String[] args) throws Exception {
   
        // 读取Word文档
        FileInputStream fis = new FileInputStream("example.docx");
        XWPFDocument document = new XWPFDocument(fis);

        // 遍历所有段落
        for (XWPFParagraph paragraph : document.getParagraphs()) {
   
            // 检查段落是否包含嵌入的Excel表格
            for (XWPFRun run : paragraph.getRuns()) {
   
                CTR ctr = run.getCTR();
                if (ctr != null && ctr.sizeOfTblArray() > 0) {
   
                    CTTbl table = ctr.getTblArray(0);
                    XSSFWorkbook workbook = new XSSFWorkbook();
                    XSSFSheet sheet = workbook.createSheet("Sheet1");
                    int rowNum = 0;
                    for (CTRow ctRow : table.getTrList()) {
   
                        XSSFRow row = sheet.createRow(rowNum++);
                        int cellNum = 0;
                        for (CTTc ctTc : ctRow.getTcList()) {
   
                            XSSFCell cell = row.createCell(cellNum++);
                            cell.setCellValue(ctTc.toString()); // 简单设置单元格值,可以扩展以保留更多样式信息
                        }
                    }
                    try (FileOutputStream fos = new FileOutputStream("output.xlsx")) {
   
                        workbook.write(fos);
                    }
                    System.out.println("Excel表格已提取并保存为output.xlsx");
                }
            }
        }
        fis.close();
    }
}

这个示例代码展示了如何从Word文档中提取Excel表格,并将其保存为一个新的Excel文件。需要注意的是,这个示例代码只是简单地将表格内容复制到新的Excel文件中,并没有完全保留原始表格的样式(如字体、颜色等)。要完全保留这些样式,需要进一步解析和处理Word文档中的样式信息,并将它们应用到生成的Excel文件中。这可能需要更复杂的逻辑和更多的POI API调用。

目录
相关文章
|
2月前
|
人工智能 缓存 自然语言处理
Java与多模态AI:构建支持文本、图像和音频的智能应用
随着大模型从单一文本处理向多模态能力演进,现代AI应用需要同时处理文本、图像、音频等多种信息形式。本文深入探讨如何在Java生态中构建支持多模态AI能力的智能应用。我们将完整展示集成视觉模型、语音模型和语言模型的实践方案,涵盖从文件预处理、多模态推理到结果融合的全流程,为Java开发者打开通往下一代多模态AI应用的大门。
391 41
|
4月前
|
移动开发 JavaScript
(H5查看CAD)网页CAD提取图纸表格到excel
本文介绍如何通过自定义MxCAD插件,在Web端智能识别CAD图纸中的表格,实现自动合并与高效导出至Excel,提升数据提取效率与准确性。内容涵盖区域选择、图形识别、表格结构重建、单元格合并及内容导出等关键技术,适用于工程图纸数据自动化处理场景。
|
3月前
|
小程序
公众号如何添加附传Word、Excel、Pdf、PPT文档
公众号里添加一些文档给公众号粉丝下载,比如课件PPT、申请表Word文档、岗位需求Excel表、大赛入围/获奖名单等。公众号本身是不支持直接上传文件的,但我们可以通过附件小程序“间接”上传文件。
636 0
|
7月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
401 10
|
9月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
9月前
|
JavaScript 前端开发 数据可视化
20.6K star!Excel级交互体验!这款开源Web表格神器绝了!
Handsontable 是一款功能强大的 JavaScript 数据表格组件,提供类 Excel 的交互体验。支持实时协作、数据绑定、公式计算等企业级功能,可轻松集成到 React/Vue/Angular 等主流框架。
1837 11
|
9月前
|
人工智能 数据可视化 前端开发
Probly:开源 AI Excel表格工具,交互式生成数据分析结果与可视化图表
Probly 是一款结合电子表格功能与 Python 数据分析能力的 AI 工具,支持在浏览器中运行 Python 代码,提供交互式电子表格、数据可视化和智能分析建议,适合需要强大数据分析功能又希望操作简便的用户。
1288 2
|
6月前
|
Java 数据库连接 API
2025 更新必看:Java 编程基础入门级超级完整版指南
本教程为2025更新版Java编程基础入门指南,涵盖开发环境搭建(SDKMAN!管理JDK、VS Code配置)、Java 17+新特性(文本块、Switch表达式增强、Record类)、面向对象编程(接口默认方法、抽象类与模板方法)、集合框架深度应用(Stream API高级操作、并发集合)、模式匹配与密封类等。还包括学生成绩管理系统实战项目,涉及Maven构建、Lombok简化代码、JDBC数据库操作及JavaFX界面开发。同时提供JUnit测试、日志框架使用技巧及进阶学习资源推荐,助你掌握Java核心技术并迈向高级开发。
791 5
|
监控 安全 Java
Java中的多线程编程:从入门到实践####
本文将深入浅出地探讨Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的摘要形式,本文将以一个简短的代码示例作为开篇,直接展示多线程的魅力,随后再详细解析其背后的原理与实现方式,旨在帮助读者快速理解并掌握Java多线程编程的基本技能。 ```java // 简单的多线程示例:创建两个线程,分别打印不同的消息 public class SimpleMultithreading { public static void main(String[] args) { Thread thread1 = new Thread(() -> System.out.prin

热门文章

最新文章