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

來源:互聯網
上載者:User

標籤:

用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上面留言或者發訊息

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.