用poi-3.6-20091214.jar 實現java給excel資料加密


用poi-3.6-20091214.jar 實現java給excel文件加密
我用了網上的很多方法,但是都沒有成功!

HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(file));
   // 設置密 碼 保 護 ·
wb.writeProtectWorkbook("111111", "owner");


紅字標識的是這個架包里面沒有構造這個方法?很奇怪,問問大家,可有用java實現對excel文件進行加密的啊?要具體能用的!非誠勿擾啊! 
[解決辦法]
你找的API是對的啊,為什么沒有跑成功呢?是不是你拿Excel2007格式文件在試?
給你貼一個我實現的實例,有幾點注意
1. 現在的POI3.5 3.6的XSSF部分都不支持對Excel的xlsx文件進行加密,所以要用2003格式文件
2. 運行實例完畢之后,再次打開文件,可以只讀打開,你選擇輸入密碼通過非只讀模式打開
3. 給貼的僅僅是一個demo,具體的代碼需要再調整的優雅一些


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

import java.io.FileInputStream;
import java.io.File;
import java.io.FileOutputStream;

public class EncodExcel2003 {
    public static void main(String[] args)throws Exception{
        FileInputStream fis=new FileInputStream(new File("resources/excel/" +
                "stuInfo.xls")); //這里換成你本地的excel相對路徑或絕對路徑
        HSSFWorkbook workbook=new HSSFWorkbook(fis);

        //   writeProtectWorkbook第一個參數是打開Excel文件的密碼
        //   writeProtectWorkbook第二個參數是現實文件密碼是由誰設置的
        //   第二個參數用中文可能會出現亂碼的情況,我用utf8編碼workspace
        //   可能用gbk不會有亂碼
        workbook.writeProtectWorkbook("password","admin");
        FileOutputStream fos=new FileOutputStream(new File("resources/excel/" +
                "stuInfo.xls"));//這里換成你本地的excel相對路徑或絕對路徑
        workbook.write(fos);
        fis.close();
        fos.close();

    }
}


如果還解決不了問題,可以在我CSDN上面留言或者發消息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM