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