PHPExcel簡介與說明(1)-以使用者文件出發
由於個人的習慣,喜歡追根究柢的探尋可以達成的原因,而並不是只會單純使用別人寫好的套件,因此看完開發者為我們所寫的文件也是必做功課之一。由於PHPExcel本身沒有為大家準備中文版的使用者手冊,我就來為大家簡介順便翻譯一點內容給大家。如果喜歡看英文版的,可以直接到下載好的PHPExcel>Documentation打開PHPExcel User Documentation - Reading Spreadsheet Files,來閱讀。
支援讀取的格式(電子表格)
從PHPExcel這樣的名稱我們可以知道是利用php來讀取excel形式的電子表單,但其他類似的表單亦有支援,就讓我們來看看有支援哪幾種類吧。以下為簡單翻譯內容:
- Excel5 微軟Excel的二位元檔案格式(BIFF5、BIFF8),用於Excel95到2003之間的版本。此格式可以被大部分電子表單的程式所支援。BIFF檔案通常為.xls檔案的延伸。關於此格式描述的文件可以參考此連結或直接下載pdf檔。
- Excel2003XML 微軟Excel 2003所包含的檔案格式選項之一,被稱作SpreadsheetXML。此檔案為加壓縮過後的XML文件。
- Excel2007 伴隨微軟Excel 2007版本而生的新檔案格式。同時,Microsoft Office Open XML SpreadsheetML和Excel 2010延伸這樣的格式更進一步有了新的功能像是sparklines。此類檔案典型檔案名稱延伸為.xlsx。這樣的格式是根據壓縮後的XML檔案。
- OOCalc
- SYLK
- Gnumeric
- CSV Comma Separated Value的簡稱,為一種常見的用在txt格式的結構策略。在這樣的檔案中,檔案中的每一行相當於一列的資料,而不同的資料欄位(或是一行資料)之間則用逗號隔開。如果本身資料之間就存在逗號的話,通常會用""將其區隔。有時候也會用 \t 或是 | 來當作區隔符號而不是用逗號。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** Error reporting */ | |
error_reporting(E_ALL); | |
ini_set('display_errors', TRUE); | |
ini_set('display_startup_errors', TRUE); | |
define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); | |
date_default_timezone_set('Asia/Taipei'); | |
/** Include PHPExcel */ | |
require_once dirname(__FILE__) . '/../Classes/PHPExcel.php'; | |
/** Include PHPExcel_IOFactory */ | |
require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; | |
echo date('H:i:s') ," ",__FILE__, EOL; | |
$objPHPExcel = new PHPExcel(); | |
$inputFileName = "14Readtest.xls"; | |
$inputFileType = PHPExcel_IOFactory::identify($inputFileName); | |
echo date('H:i:s') , " ", $inputFileType, EOL; | |
$callStartTime = microtime(true); | |
$objReader = PHPExcel_IOFactory::createReader($inputFileType); | |
$objPHPExcel = $objReader->load($inputFileName); | |
echo date('H:i:s') , " Write to Excel format as the Excel2007" , EOL; | |
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, "Excel2007"); | |
$objWriter->save('Test.xlsx'); | |
$callEndTime = microtime(true); | |
$callTime = $callEndTime - $callStartTime; | |
echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; | |
echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; | |
// Echo memory usage | |
echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; | |
// Echo memory peak usage | |
echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; | |
// Echo done | |
echo date('H:i:s') , " Done writing file" , EOL; | |
echo 'File has been created in ' , getcwd() , EOL; |
執行環境:Windows7 Appserv
執行設定:Classes和Examples同層,Classes下包含一個名為PHPExcel,php和一個名為PHPExcel的資料夾,此資料夾內有本次需要的php檔-IOFactory.php;Examples下則放本次的上面執行的php和需要讀取的excel檔案。
執行結果:
留言
張貼留言