2014-10-08 508 views
0

我想用PHP創建密碼保護的excel文件。嘗試了很多選項,包括PHPExcel庫,但它並沒有阻止Excel讀取。每當用戶試圖打開Excel,我需要問密碼。正如許多論壇所建議的,我無法將文件壓縮並添加密碼。如何使用PHP生成密碼保護的Excel文件?

有沒有其他的選擇?

+0

分享一些有問題的代碼,我們可以幫助調試。 – MattWithoos 2014-10-08 05:30:38

+0

我還沒有得到任何這樣的代碼。我試過PHPExcel庫,但它只能防止文件修改(即用戶仍然可以讀取文件,但無法修改密碼)。 – user4119828 2014-10-08 05:37:40

+0

我的示例代碼: $ objPHPExcel = new PHPExcel(); $ objPHPExcel-> setActiveSheetIndex(0); $ objPHPExcel-> getActiveSheet() - > SetCellValue('A1','Hello'); $ objPHPExcel-> getActiveSheet() - > SetCellValue('B1','world!'); $ objPHPExcel-> getSecurity() - > setLockWindows(true); $ objPHPExcel-> getSecurity() - > setLockStructure(true); $ objPHPExcel-> getSecurity() - > setWorkbookPassword('1234'); $ objPHPExcel-> getActiveSheet() - > setTitle('Reports'); $ objWriter = new PHPExcel_Writer_Excel2007($ objPHPExcel); $ objWriter-> save('Reports.xlsx'); – user4119828 2014-10-08 05:38:07

回答

0

有我希望的副本嗎?

Go Here

$reader = new PHPExcel_Reader_Excel2007; 
$workbook = $reader->load("document.xlsx"); 
$workbook->-getActiveSheet()->getSecurity()->setWorkbookPassword("your password"); 
+0

感謝您的回覆。我已經試過這個,但是它只能防止文件修改。 – user4119828 2014-10-08 05:40:57

0

感謝您對發表意見,澄清。

據我所知,PHPExcel給你兩個密碼保護選項。你可以保護工作本書或工作。這聽起來像你保護 - 我會建議重新訪問PHPExcel文檔並進一步研究。這是絕對有可能的,因爲你會發現the official Excel page

其他唯一的建議,我已經是對密碼本身使用雙引號:

$objPHPExcel->getSecurity()->setWorkbookPassword("1234"); 

這是什麼this answer uses

$workbook->getSecurity()->setWorkbookPassword("your password"); 
+0

嘗試過雙引號,仍然無法正常工作。有什麼與操作系統有關的,我使用的是Ubuntu 14。04 – user4119828 2014-10-08 06:18:25

+0

$ objPHPExcel = new PHPExcel(); $ objPHPExcel-> setActiveSheetIndex(0); $ objPHPExcel-> getActiveSheet() - > SetCellValue('A1','Hello'); $ objPHPExcel-> getActiveSheet() - > SetCellValue('B1','world!'); $ objPHPExcel-> getSecurity() - > setLockWindows(true); $ objPHPExcel-> getSecurity() - > setLockStructure(true); $ objPHPExcel-> getSecurity() - > setWorkbookPassword(「1234」); $ objPHPExcel-> getActiveSheet() - > setTitle(「Report」); $ objWriter = new PHPExcel_Writer_Excel2007($ objPHPExcel); 我的修訂代碼。我做錯了什麼? – user4119828 2014-10-08 06:19:47

0

Try this

$objPHPExcel->getSecurity()->setLockWindows(true); 
    $objPHPExcel->getSecurity()->setLockStructure(true); 

    $objPHPExcel->getSecurity()->setWorkbookPassword('secret'); 

爲工作表安全:它正在爲我工​​作!

$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); 
    $objPHPExcel->getActiveSheet()->getProtection()->setSort(true); 
    $objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true); 
    $objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true); 

    $objPHPExcel->getActiveSheet()->getProtection()->setPassword('password'); 

但工作簿安全,phpExcel有一個問題,我認爲,仍在探索

+0

沒有親愛的沒有任何關係到os.Because我正在使用Windows,當試圖做到這一點工作表工作正常,但工作簿密碼不working.your接近是correct.once嘗試工作表。 – 2014-10-08 06:19:04

1

PHPExcel不支持寫入密碼保護的文件,使他們無法無需輸入密碼讀取; PHPExcel中的密碼保護功能僅用於防止數據編輯,更改工作表結構等。

+0

我會接受你的話,然後....我不知道我已經實施了密碼保護打開文件 – 2014-10-08 23:15:33