2015-05-21 129 views
2

最近,我從互聯網上下載了一個生成的Excel文件(xlsx),並將其保存到我的電腦。要在Excel中編輯此文件,首先必須點擊「受保護的視圖 - 啓用編輯」來編輯文檔。PHPExcel - 閱讀下載的xlsx文件

當我將文件上載到服務器而未先在Excel中打開此文件時,PHPExcel無法識別Excel文件中的數據。在Excel中打開文件並點擊「啓用編輯」並重新保存文件後,PHPExcel正確導入文件。

我檢查了文件的mimetype(直接下載之後)。 mimetype是'application/zip'(而不是'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')。在Excel中重新保存文檔後,mimetype是'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'。

我用用PHPExcel導入文件中的代碼:

<?php 
$file_name = 'Excelfile.xlsx'; 

$objReader = PHPExcel_IOFactory::createReaderForFile($file_name); 

$objReader->setReadDataOnly(true); 

$objPHPExcel = $objReader->load($file_name); 

$worksheet = $objPHPExcel->getSheet(0); 
?> 

不要任何人知道你怎麼能讀取PHPExcel Excel文件,而不需要重新保存在Excel中的文件?

回答

0

「受保護的視圖」是內置於最新版本的MS Excel/Office本身中的安全功能。從互聯網上下載的任何文件都被視爲可疑文件,並且要求用戶在編輯之前明確確認他們希望在編輯模式下啓用它。

據我所知,這並不影響PHPExcel以任何方式加載文件的能力,但我會看看是否可以找出造成這種情況的原因。你可以提出它作爲一個問題github

+0

感謝您的答覆馬克和你的好工作!我應該向您發送兩個文件用於測試目的嗎? – Arjen

+0

擁有能夠證明測試目的的問題的文件(尤其是如果它們足夠小以便能夠快速運行測試)總是很有用 –

+0

我向您發送了文件。 TNX! – Arjen