首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Apache POI打开.docx并使用密码保存它

要使用Apache POI打开.docx文件并使用密码保存,您首先需要确保已经安装了Apache POI库

  1. 导入依赖项

在项目的pom.xml文件中,添加以下依赖项:

代码语言:javascript
复制
<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>5.2.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml-schemas</artifactId>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.xmlbeans</groupId>
        <artifactId>xmlbeans</artifactId>
        <version>5.1.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>4.4</version>
    </dependency>
</dependencies>
  1. 编写代码
代码语言:javascript
复制
import java.io.*;

import org.apache.poi.poifs.crypt.*;
import org.apache.poi.poifs.crypt.standard.*;
import org.apache.poi.xwpf.usermodel.*;

public class DocxWithPassword {
    public static void main(String[] args) throws Exception {
        String inputFilePath = "example.docx";
        String outputFilePath = "example_password_protected.docx";
        String password = "your_password_here";

        try (FileInputStream fis = new FileInputStream(inputFilePath)) {
            XWPFDocument document = new XWPFDocument(fis);

            // 创建POIFS文档加密对象
            POIFSFileSystem fs = new POIFSFileSystem();
            EncryptionInfo info = new EncryptionInfo(EncryptionMode.xor);

            // 创建加密对象
            Encryptor encryptor = info.getEncryptor();
            encryptor.confirmPassword(password);

            // 使用加密对象对文档进行加密
            try (FileOutputStream fos = new FileOutputStream(outputFilePath)) {
                document.write(encryptor.getDataStream(fs));
                fs.writeFilesystem(fos);
            }

            System.out.println("Document successfully encrypted with password: " + password);
        }
    }
}
  1. 运行代码

将inputFilePath更改为要加密的.docx文件的路径,将outputFilePath更改为加密后的文件的输出路径,将password设置为所需的密码。现在运行程序,它将把输入文件加密并保存为带有密码的新文件。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 使用 ApachePOI 组件读写 Word doc 和 docx 文件

最近在项目中要生成Word的doc和docx文件,一番百度google之后,发现通过java语言实现的主流是Apache的POI组件。...由于项目中只是用到了doc和docx的组件,下面也只是介绍这两个组件的使用 一、在Android Studio中如何用POI组件 从POI官网上看,貌似暂并不支持IntelliJ IDE,如下图,所以这里我们采用直接下载...jar包并导入项目的方式。...二、实现doc文件的读写 Apache POI中的HWPF模块是专门用来读取和生成doc格式的文件。在HWPF中,我们使用HWPFDocument来表示一个word doc文档。...之后我们就可以往HWPFDocument里面新增内容了,然后再把它写入到另外一个doc文件中,这样就相当于我们使用POI生成了word doc文件。

4.5K100
  • poi-tl根据word模板导出word、使用spring-thymeleaf模板生成html并通过docx4j把html转word,使用jxls根据excel模板导出excel(1)

    根据word模板导出word、使用spring-thymeleaf模板生成html并通过docx4j把html转word,使用jxls根据excel模板导出excel 使用poi-tl 根据word模板生成...Apache POI不仅封装了易用的文档API(文本、图片、表格、页眉、页脚、图表等),也可以在底层直接操作文档XML结构,poi-tl正是一个基于Apache POI的Word模板引擎,并且拥有着让人喜悦的特性...--poi tl start导出word--> org.apache.poi...-export-demo 打开下载文件 listDemo.docx 模板 测试 localhost:9001/poi-tl/poiTL-demo 打开下载文件 table-look-up.docx...模板 测试 localhost:9001/poi-tl/poiTL-demo2 打开下载文件 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    1K50

    EasyExcel与POI对比及实现百万数据导入导出的基础示例

    Apache POI 是一套 Java API,专门用来处理 Microsoft Office 格式的文件,特别是对于 Excel (.xls, .xlsx), Word (.doc, .docx),...读写功能: - Apache POI 提供了丰富的 API 来读取和创建这些文件格式,允许 Java 开发者直接在代码中打开、修改和保存 Office 文档,而不需启动实际的 Office 应用程序...内部工作原理: - POI 对 Office 文件格式进行了详细的逆向工程,理解并实现了它们复杂的二进制或 XML 内部结构。...- EasyExcel 是阿里巴巴开源的一个轻量级框架,建立在 Apache POI 的基础之上,重点在于解决大数据量下的内存效率问题。它采用流式处理机制,仅逐行读写数据,极大地减少了内存消耗。...- 如果需要处理多种Office文件格式,或者进行复杂的单元格样式、公式等高级操作,Apache POI 更具优势,因为它的功能覆盖范围更广。

    2.4K10

    设计模式 | 行为型 | 解释器模式

    解释器模式为某个语言定义它的语法表示,并定义一个解释器用来处理这个语法。 适用场景 构建一个“语言”解释器。 实现编译器、规则引擎、正则表达式等功能。 将一些重复出现的问题用简单的语法来进行表达。...poi-tl是一个基于 Apache POI 的 Word 模板引擎,给它一个 word 模板文件以及数据内容,即可生成一个基于模板文件更新的 word 文件。...举个使用的例子: // 新建一个模板文件:template.docx ,并且在里面添加内容:{{title}} // poi-tl 的所有的标签都是以 {{ 开头,以 }} 结尾 {{title}}...{{ put("title","Hi, poi-tl Word模板引擎"); }}); template.writeAndClose(new FileOutputStream("output.docx...")); // 输出的 output.docx 文件内容: Hi,poi-tl Word模板引擎 示例 模仿 poi-tl 功能的实现: 表达式抽象类: public interface Expression

    38210

    Java Apache POI 打印Word文档工具(含文本替换,动态表格功能)

    [实用]【更新中】Java Apache POI 打印Word文档工具(含文本替换,动态表格功能) 基于Apache POI对Word进行操作 一、基于Apache POI封装的word文档工具V1.0...介绍 二、Apache POI 知识 ==apache poi官方文档:http://poi.apache.org/== 1. jar包(maven的,这个不多做解释了) 2. poi的类 3.常用的方法...如果word文档少还好,但是如果文档内容多,那就很麻烦(up主的项目所需打印的word文档就很多内容) Apache POI能很好的保持原来的样式,在理解底层接口原理后,还是挺好操作的,但是对于使用者来说...,这是极度不灵活的) 文本替换功能,在编辑模板的时候,可以设置它的样式。...插入图片支持自定义大小 简单例子 (1)word模板 (2)通过apache poi打印后 ---- 二、Apache POI 知识 apache poi官方文档:http://poi.apache.org

    4K10

    Java 操作 Office:POI word 之文档信息提取

    系列文章: Java 操作 Office:POI 之 word 生成 Java 操作 Office:POI 之 word 图片处理 Java 操作 Office:POI word 之网络图片处理 Java...操作 Office:POI word 之表格格式 Apache POI详解及Word文档读取示例 楔子 工作忙碌,又是好久不见。...包括对word、pdf格式的文档进行内容提取,之后做格式解析,并根据具体的业务需求,还会有文本识别提取关键内容的一些动作。...二 基于apache poi的内容提取 关于apache poi,基础信息介绍、jar包依赖的引入方式已经在之前的系列文章:Apache POI详解及Word文档读取示例 中做了介绍,所以这里不再赘述。...我们可以使用poi提供的api来读取word的doc 和 docx格式文档,并能够获取到每个段落的格式(style),判断是目录,正文,还是标题等。

    4.3K21

    Java操作Office:POI之word生成

    通过对比,结合需求要求,最终选择了Apache POI来实现,所以这里先详细介绍POI,以及一个可用的demo,供参考。...三 Apache POI Apache POI(官网)是基于Office Open XML标准(OOXML)和Microsoft的OLE 2复合文档格式(OLE2)处理各种文件格式的开源项目。...简而言之,您可以使用Java读写MS Excel文件,可以使用Java读写MS Word和MS PowerPoint文件。 poi的gitee地址:gitee。...入门教程可以参考 Apache POI Word(docx) 入门示例教程。 四 版本信息 poi的最新版本已经到了5.0.0,不过可以找到的大部分demo都是基于3.x版本或4.1版本。...为了尽快搭建demo并运行起来,我们也没有使用最新版本,而是选择了4.1.0进行开发。

    2.5K31

    Java操作Office:POI之word生成

    通过对比,结合需求要求,最终选择了Apache POI来实现,所以这里先详细介绍POI,以及一个可用的demo,供参考。...三 Apache POI Apache POI(官网)是基于Office Open XML标准(OOXML)和Microsoft的OLE 2复合文档格式(OLE2)处理各种文件格式的开源项目。...简而言之,您可以使用Java读写MS Excel文件,可以使用Java读写MS Word和MS PowerPoint文件。 poi的gitee地址:gitee。...入门教程可以参考 Apache POI Word(docx) 入门示例教程。 四 版本信息 poi的最新版本已经到了5.0.0,不过可以找到的大部分demo都是基于3.x版本或4.1版本。...为了尽快搭建demo并运行起来,我们也没有使用最新版本,而是选择了4.1.0进行开发。

    6K00
    领券