java 导出execl设置密码

这篇博客介绍了如何在Java中使用POI库来加密Excel文件,特别指出只支持XSSFWorkbook(.xlsx格式)。文章详细阐述了maven配置、核心代码以及在处理xls格式时可能出现的问题和解决方法。
摘要由CSDN通过智能技术生成

[TOC](java 导出execl文件设置密码)

java 导出execl文件设置密码

本文主要采用POI 加密,目前发现这种加密方式只支持 XSSFWorkbook创建的excel文件(Excel 2007 OOXML (.xlsx)格式),对于HSSFWorkbook不支持;

一、maven配置引用

 <dependency>
     <groupId>org.apache.poi</groupId>
     <artifactId>poi-ooxml</artifactId>
     <version>3.17</version>
 </dependency>

二、主要代码

// 创建POIFS文件系统 加密文件
            POIFSFileSystem fs = new POIFSFileSystem();
            EncryptionInfo encryptionInfo = new EncryptionInfo(EncryptionMode.agile);
            Encryptor enc = encryptionInfo.getEncryptor();
            enc.confirmPassword("123456");

            OPCPackage opc = null;
            try {
                opc = OPCPackage.open(file, PackageAccess.READ_WRITE);
            } catch (InvalidFormatException e) {
         
Java中,我们可以使用JDBC连接MySQL数据库,并结合Apache POI库来生成Excel文件。以下是一个简单的步骤说明: 1. 添加依赖:首先,你需要将Apache POI(特别是`poi-ooxml`模块,用于处理Excel 2007及以上版本)添加到项目中。如果你使用Maven,可以在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.0.0</version> </dependency> ``` 2. 连接数据库:使用JDBC创建一个Connection对象,设置驱动、URL、用户名和密码。 ```java import java.sql.Connection; import java.sql.DriverManager; String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "username"; String password = "password"; try { Connection conn = DriverManager.getConnection(url, user, password); // ... (数据库操作) } catch (Exception e) { e.printStackTrace(); } ``` 3. 获取数据:执行SQL查询,获取需要导出的数据。 4. 创建Excel工作簿:使用`Workbook`对象初始化一个新的Excel工作簿。 ```java import org.apache.poi.ss.usermodel.*; Workbook workbook = WorkbookFactory.create(true); // 使用XSSFWorkbook支持Excel 2007及以上版本 Sheet sheet = workbook.createSheet("Sheet1"); ``` 5. 写入数据:遍历结果集,将数据写入Excel表格的行和列。 ```java Row row = sheet.createRow(0); // 第一行作为表头 cell = row.createCell(0); cell.setCellValue("Column 1"); // 遍历查询结果并写入对应单元格 ResultSetMetaData meta = resultSet.getMetaData(); for (int i = 1; i <= meta.getColumnCount(); i++) { cell = row.createCell(i); cell.setCellValue(resultSet.getString(i)); row = sheet.createRow(i + 1); // 新建一行 } 6. 保存Excel:关闭连接和工作簿,然后写入磁盘。 ```java try { workbook.write(outputStream); workbook.close(); } finally { if (conn != null) { conn.close(); } } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值