精华内容
下载资源
问答
  • java加密excel文件(jxcell.jar)

    热门讨论 2011-09-28 13:42:16
    压缩文件里提供了java 测试代码 和 jxcell.jar最新版本的架包,用户可以自己设置密码,并且只能通过密码方式打开excel文件,如有不懂的地方可以加我qq联系我,我费了好大劲才找到搞定的。保证能够用起来!294401208
  • 收集:author: lifq package ... import java.io.IOException; import com.jxcell.CellException; import com.jxcell.View; /** * * @ClassName: DataExcels * @Description: Exc...

    收集:author: lifq

    package com.XXX.XXX.utils;
    import java.io.IOException;
    
    import com.jxcell.CellException;
    import com.jxcell.View;
    
    /**
     *
     * @ClassName: DataExcels
     * @Description: Excel加密解密
     * @date: 2016-6-12 上午11:00:31
     * @version
     */
    public class EncryptExcelUtil {
    
        /**
         * 读取excel,并进行加密
         *
         * @param url
         *            excel文件路径 例:D:\\word.xls
         * @param pwd
         *            加密密码
         */
        public static void encrypt(String url, String pwd) {
            View m_view = new View();
            try {
                // 读取Excel文档
                m_view.read(url);
                // 设置文档打开密码
                m_view.write(url, pwd);
            } catch (CellException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * excel 解密
         *
         * @return void
         * @author lifq
         * @date 2015-3-13 下午02:15:49
         */
        public static void decrypt(String url, String pwd) {
            View m_view = new View();
            try {
                // read the encrypted excel file
                m_view.read(url, pwd);
    
                // write without password protected
                m_view.write(url);
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
        }
    
        public static void main(String args[]) {
            // 下面1与2 两个方法请分开执行,可以看到效果
            //
            //1. 把g:\\test.xls 添加打开密码123
            EncryptExcelUtil.encrypt("f:\\test.xls", "123");
            //2. 把g:\\test.xls 密码123 去除
            EncryptExcelUtil.decrypt("f:\\test.xls", "123");
    
        }
    }

     

    传送门:加密所需Jar包

    转载于:https://www.cnblogs.com/shinubi/p/5579727.html

    展开全文
  • 在日常的项目中,经常碰到传输的Excel文件加密的,数据入库时需要先逐个文件删除密码,操作复杂,还很不安全,可以在项目中结果使用Java读取带密码的Excel,操作如下:1、pom中导入poi依赖org.apache.poipoi3.14...

    在日常的项目中,经常碰到传输的Excel文件是加密的,数据入库时需要先逐个文件删除密码,操作复杂,还很不安全,可以在项目中结果使用Java读取带密码的Excel,操作如下:

    1、pom中导入poi依赖

    org.apache.poi

    poi

    3.14

    org.apache.poi

    poi-ooxml

    3.14

    org.apache.poi

    poi-ooxml-schemas

    3.14

    org.dom4j

    dom4j

    2.1.3

    org.projectlombok

    lombok

    2、工具类

    import java.io.*;

    import java.text.SimpleDateFormat;

    import java.util.Date;

    import lombok.extern.slf4j.Slf4j;

    import org.apache.poi.hssf.usermodel.HSSFCell;

    import org.apache.poi.hssf.usermodel.HSSFDateUtil;

    import org.apache.poi.poifs.crypt.Decryptor;

    import org.apache.poi.poifs.crypt.EncryptionInfo;

    import org.apache.poi.poifs.filesystem.POIFSFileSystem;

    import org.apache.poi.ss.usermodel.*;

    import org.apache.poi.xssf.usermodel.XSSFWorkbook;

    @Slf4j

    public class Test {

    public static void main(String[] args) throws Exception {

    String excelPath = "需要解压的excel地址";

    String password = "excel文件密码";

    readExcel(excelPath, password);

    }

    /**

    * 读取加密的文件

    *

    * @param excelPath 文件路径

    * @param password 密码

    */

    public static void readExcel(String excelPath, String password) {

    try {

    String prefix = excelPath.substring(excelPath.lastIndexOf(".") + 1);

    Workbook workbook;

    InputStream inp = new FileInputStream(excelPath);

    if (prefix.toUpperCase().equals("XLS")) {

    org.apache.poi.hssf.record.crypto.Biff8EncryptionKey.setCurrentUserPassword(password);

    workbook = WorkbookFactory.create(inp);

    inp.close();

    } else {

    POIFSFileSystem pfs = new POIFSFileSystem(inp);

    inp.close();

    EncryptionInfo encInfo = new EncryptionInfo(pfs);

    Decryptor decryptor = Decryptor.getInstance(encInfo);

    decryptor.verifyPassword(password);

    workbook = new XSSFWorkbook(decryptor.getDataStream(pfs));

    }

    Sheet sheet = workbook.getSheetAt(0);

    int startRowNum = sheet.getFirstRowNum();

    int endRowNum = sheet.getLastRowNum();

    StringBuffer datas = new StringBuffer();

    for (int rowNum = startRowNum; rowNum <= endRowNum; rowNum++) {

    Row row = sheet.getRow(rowNum);

    if (row == null)

    continue;

    int startCellNum = row.getFirstCellNum();

    int endCellNum = row.getLastCellNum();

    for (int cellNum = startCellNum; cellNum < endCellNum; cellNum++) {

    Cell cell = row.getCell(cellNum);

    if (cell == null)

    continue;

    int type = cell.getCellType();

    switch (type) {

    case Cell.CELL_TYPE_NUMERIC:// 数值、日期类型

    double d = cell.getNumericCellValue();

    if (HSSFDateUtil.isCellDateFormatted(cell)) {// 日期类型

    Date date = cell.getDateCellValue();

    datas.append(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date) + "|");

    } else {// 数值类型

    datas.append("|" + d + "|");

    }

    break;

    case Cell.CELL_TYPE_BLANK:// 空白单元格

    datas.append("|null|");

    break;

    case Cell.CELL_TYPE_STRING:// 字符类型

    datas.append("|" + cell.getStringCellValue() + "|");

    break;

    case Cell.CELL_TYPE_BOOLEAN:// 布尔类型

    datas.append("|" + cell.getBooleanCellValue() + "|");

    break;

    case HSSFCell.CELL_TYPE_ERROR: // 故障

    datas.append("|非法字符|");

    break;

    default:

    datas.append("|error|");

    break;

    }

    }

    datas.append("\n");

    }

    //转成CSV格式,可以直接导入数据库

    log.error(datas.toString().replace("||", ",").replace("|", ""));

    } catch (Exception e) {

    e.printStackTrace();

    }

    }

    }

    展开全文
  • MS Excel提供了广泛的功能,可以无缝保存和分析数据。...使用Java加密Excel文件 使用Java解密Excel文件 验证加密的Excel文件的密码 Aspose.Cells for Java是功能强大的电子表格处理API,可让您无缝创建和处理E

    MS Excel提供了广泛的功能,可以无缝保存和分析数据。可以使用VBA模块执行计算,生成图表以及定义自定义逻辑。知道电子表格中数据的重要性,MS Excel允许您使用加密保护工作簿。此外,也可以用密码保护Excel文件,以避免未经授权的访问。因此,本文介绍了如何使用Java加密/解密和密码保护Excel文件。

    • 使用Java加密Excel文件
    • 使用Java解密Excel文件
    • 验证加密的Excel文件的密码

    Aspose.Cells for Java是功能强大的电子表格处理API,可让您无缝创建和处理Excel文件。此外,它使您可以在几行代码中对工作簿进行加密和解密。此外,您可以使用密码保护Excel文件。点击点击下载试用。

    使用Java加密Excel文件

    Aspose.Cells for Java为Excel 2003文件提供了以下加密类型。

    • XOR
    • COMPATIBLE (Office 97/2000 compatible)
    • ENHANCED CRYPTOGRAPHIC PROVIDER V1
    • STRONG CRYPTOGRAPHIC PROVIDER

    但是,以MS Excel相同的方式使用SHA和AES加密技术对2007/2010工作簿进行加密。以下是使用Aspose.Cells for Java加密Excel文件的步骤。

    • 使用Workbook类加载Excel文件。
    • 使用Workbook.getSettings()。setPassword(string)方法设置密码。
    • 使用Workbook.setEncryptionOptions(EncryptionType,int)方法加密Excel文件。
    • 使用Workbook.save(string)方法保存加密的工作簿。

    为了演示,下面的代码示例演示如何使用Java加密Excel文件。

    // Instantiate a Workbook object by excel file path
    Workbook workbook = new Workbook("workbook.xlsx");
    
    // Password protect the file
    workbook.getSettings().setPassword("1234");
    
    // Encrypt by specifying the encryption type
    workbook.setEncryptionOptions(EncryptionType.XOR, 40);
    
    // Specify Strong Encryption type (RC4,Microsoft Strong Cryptographic Provider)
    workbook.setEncryptionOptions(EncryptionType.STRONG_CRYPTOGRAPHIC_PROVIDER, 128);
    
    // Save the encrypted Excel file
    workbook.save("encrypted-workbook.xlsx");

    使用Java解密Excel文件

    为了解密加密的Excel文件,您只需要提供其密码,其余的将由Aspose.Cells for Java处理。以下是使用Java解密Excel文件的步骤。

    • 创建LoadOptions类的实例。
    • 使用LoadOptions.setPassword(string)方法指定密码。
    • 创建Workbook类的实例,然后将文件的路径和LoadOptions对象传递给其构造函数。
    • 使用Workbook.getSettings()。setPassword(string)方法将密码设置为null。
    • 完成后,使用Workbook.save(string)方法保存解密的工作簿。

    下面的代码示例演示如何使用Java解密受密码保护的Excel文件。

    // Initialize loading options
    LoadOptions loadOptions = new LoadOptions(LoadFormat.XLSX);
    
    // Set original password
    loadOptions.setPassword("1234");
    
    // Instantiate a Workbook object with Excel file's path
    Workbook workbook = new Workbook("encrypted-workbook.xlsx", loadOptions);
    
    // Set password to null
    workbook.getSettings().setPassword(null);
    
    // Save the decrypted Excel file
    workbook.save("decrypted-workbook.xlsx");

    验证加密的Excel文件的密码

    除了加密/解密,Aspose.Cells for Java还允许您验证受保护的Excel文件的密码。以下是执行密码验证的步骤。

    • 使用FileInputStream类加载加密的Excel文件。
    • 使用FileFormatUtil.verifyPassword(FileInputStream,string)方法验证密码。
    • 结果,如果返回值为true,则密码有效,否则无效。

    下面的代码示例演示如何使用Java验证加密的Excel文件的密码。

    // Create a Stream object
    FileInputStream fstream = new FileInputStream("encrypted-workbook.xlsx");
    
    // Verify password
    boolean isPasswordValid = FileFormatUtil.verifyPassword(fstream, "1234");
    
    // Print results
    System.out.println("Password is Valid: " + isPasswordValid);

    如果您有任何疑问或需求,请随时加入Aspose技术交流群(761297826),我们很高兴为您提供查询和咨询。

    展开全文
  • Java 加密/解密Excel

    2020-02-07 15:09:37
    设置excel文件保护时,通常可选择对整个工作簿进行加密保护,打开文件时需要输入密码;或者对指定工作表进行加密,即设置表格内容只读,无法对工作表进行编辑。另外,也可以对工作表特定区域设置保护,即设置指定...

    概述

    设置excel文件保护时,通常可选择对整个工作簿进行加密保护,打开文件时需要输入密码;或者对指定工作表进行加密,即设置表格内容只读,无法对工作表进行编辑。另外,也可以对工作表特定区域设置保护,即设置指定区域可编辑或者隐藏数据公式,保护数据信息来源。无需设置文档保护时,可撤销密码保护,即解密文档。下面,将通过java程序演示以上加密、解密方法的实现。

    示例大纲

    1. Excel工作簿

        1.1 加密工作簿

        1.2 解密工作簿

    2. Excel工作表

        2.1 加密工作表

        2.2 加密工作表指定数据范围

        2.3 设置工作表公式不可见

        2.4解密Excel工作表

    工具

    工具:Free Spire.XLS for Java (免费版)

    注1 可通过官网下载jar包,并解压将lib文件夹中的jar文件导入java程序;或者通过maven仓库下载安装导入。

    Jar导入效果:

    注2这里设置工作表保护时,可支持多种不同类型的保护(如下图),本文示例以选择其中一种为例。

    Java代码示例

    【示例1】加密工作簿

    import com.spire.xls.*;
    
    public class ProtectWb {
        public static void main(String[] args) {
            //加载测试文档
            Workbook wb = new Workbook();
            wb.loadFromFile("sample.xlsx");
    
            //使用密码加密工作簿
            wb.protect("123456");
    
            //保存文档
            wb.saveToFile("ProtectWorkbook.xlsx", ExcelVersion.Version2010);
            wb.dispose();
        }
    }
    

    工作簿加密结果:

     

    【示例2】解密工作簿

    import com.spire.xls.*;
    
    public class UnprotectWb {
        public static void main(String[] args) {
            //加载文档
            Workbook wb = new Workbook();
            wb.setOpenPassword("123456");//源文档密码
            wb.loadFromFile("ProtectWorkbook.xlsx");
    
            //解除密码保护
            wb.unProtect();
    
            //保存文档
            wb.saveToFile("UnprotectWb.xlsx");
            wb.dispose();
        }
    }
    

    运行程序,生成的工作簿文件将不再有密码保护。

     

    【示例3】加密工作表

    import com.spire.xls.*;
    
    import java.util.EnumSet;
    
    public class ProtectSheet {
        public static void main(String[] args) {
            //加载测试文档
            Workbook wb = new Workbook();
            wb.loadFromFile("sample.xlsx");
    
            //获取第一个工作表
            Worksheet sheet = wb.getWorksheets().get(0);
    
            //使用密码加密保护
            sheet.protect("654321", EnumSet.of(SheetProtectionType.All));
    
            //保存文档
            wb.saveToFile("ProtectWorksheet.xlsx", ExcelVersion.Version2010);
            wb.dispose();
        }
    }
    

    工作表加密结果:

     

    【示例4】加密工作表指定数据范围

    import com.spire.xls.*;
    
    import java.util.EnumSet;
    
    public class ProtectRange {
        public static void main(String[] args) {
            //加载测试文档
            Workbook wb = new Workbook();
            wb.loadFromFile("sample.xlsx");
    
            //获取第一个工作表
            Worksheet sheet = wb.getWorksheets().get(0);
    
            //密码加密工作表
            sheet.protect("123654", EnumSet.of(SheetProtectionType.All));
            //指定可编辑的区域
            sheet.addAllowEditRange("AllowEdit",sheet.getCellRange(3,1,11,8));
    
            //保存文档
            wb.saveToFile("ProtectRange.xlsx", ExcelVersion.Version2010);
            wb.dispose();
        }
    }
    

    指定区域加密结果:

     

    【示例5】设置工作表公式隐藏

    import com.spire.xls.*;
    
    import java.util.EnumSet;
    
    public class ProtectAndHideFormula {
        public static void main(String[] args) {
            //加载文档
            Workbook  wb = new Workbook();
            wb.loadFromFile("sample.xlsx");
    
            //获取工作表
            Worksheet sheet = wb.getWorksheets().get(0);
    
            //设置加密
            sheet.protect("123", EnumSet.of(SheetProtectionType.All));
            //隐藏公式
            sheet.getAllocatedRange().isFormulaHidden(true);
    
            //保存文档
            wb.saveToFile("HideFormula.xlsx",FileFormat.Version2010);
            wb.dispose();
        }
    }
    

    设置公式隐藏结果:

     

    【示例6】解密Excel工作表

    import com.spire.xls.*;
    
    public class UnprotectSheet {
        public static void main(String[] args) {
            //加载文档
            Workbook  wb = new Workbook();
            wb.loadFromFile("ProtectWorksheet.xlsx");
    
            //获取工作表
            Worksheet sheet = wb.getWorksheets().get(0);
    
            //解除密码保护(需输入源文档密码)
            sheet.unprotect("654321");
    
            //保存文档
            wb.saveToFile("UnprotectSheet.xlsx",ExcelVersion.Version2010);
            wb.dispose();
        }
    }
    

    运行程序,生成的文档中,指定工作表将不再受保护。

    (本文完)

     

    展开全文
  • Note : I have looked at this post reading excel file, but doesn't help my exact situation 解决方案 Ah, I've spotted your problem. It's this line: Decryptor d = new Decryptor(info); As shown in the ...
  • java poi Excel加密文件导出和下载二级目录三级目录最终结果图 二级目录 三级目录 最终结果图
  • Java生成Excel加密

    千次阅读 2019-06-19 16:17:34
    Java生成Excel加密文件 导入poi包 <!-- POI --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</vers...
  • 因为对于这个java操作Excel来说不是很熟悉,只是以前做过简单的操作 是用poi做的。我在网上搜了一下好多的API都可以支持的。但是就是找不到那种打开权限的密码的写法。都是只读密码保护。不是我所想要的。还好最终我...
  • java poi 导出excel加密

    万次阅读 2017-03-27 10:08:01
    java poi 导出excel加密导出excel加密,要先把excel导出到服务器,获取文件路径,加密,在下载的模式
  • 使用该JAR包,能够给EXCEL直接加密,弹出对话框,输入正确密码,才能进入 方法: View m_view = new View(); m_view.read(inputExcelFile.getAbsolutePath()); m_view.editCopyRight(); m_view.write(outputExcel...
  • 要进行加密文件为office 2007 套件生成的文件,即文件名后缀有x的,比如pptx,docx,xlsx等。 导入pom 依赖。 <dependency> <groupId>org.docx4j</groupId> <artifactId>docx4j-core&...
  • java poi对Excel文件加密

    2018-11-22 15:39:00
    // 创建POIFS文件系统 加密文件 POIFSFileSystem fs = new POIFSFileSystem(); EncryptionInfo info = new EncryptionInfo(fs, EncryptionMode.agile); Encryptor enc = info.getEncryptor(); enc.confirm...
  • POI加密Excel文件导出

    2019-08-14 15:04:46
    使用的包: < dependency > < groupId ... 这个东西将内容写入文件流,但是我用了之后加密是成功了,文件却打不开了。 百度了很多答案都是和官方例子一样。 最后在这找到了答案,需要翻墙 ...
  • java poi 打开加密 excel?

    2014-09-22 17:38:26
    我的Excel 是加密的,怎样用poi,读取这个文件呢?或使用java解密Excel文件.
  • java excel 导出加密

    2021-07-30 17:06:46
    http://poi.apache.org/apidocs/dev/org/apache/poi/poifs/crypt/EncryptionInfo.html有兴趣可以看看,里面有深度加密,我这里没有使用 一、使用步骤 1.引入库 版本比较低,可以使用 2.使用方式 代码如下...
  • java poi 读取有密码加密Excel文件

    万次阅读 2014-09-23 15:05:25
    String excelPath = "Excel文件路徑"; String password = "Excel文件密碼"; String prefix = excelPath.substring(excelPath.lastIndexOf(".") + 1); Workbook workbook; InputStream inp = new ...
  • 访问excel就要输入密码才能打开....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,670
精华内容 3,068
关键字:

java加密excel文件

java 订阅