許多網站需要實現表格數據的導入導出功能,而PHP作為一種極其流行的Web編程語言,自然也有許多現成的插件用以處理Excel文件。其中PHPExcel是一個非常常用的操作Excel文件的插件,它可以實現對Excel文件的直接讀寫操作,這篇文章我們將深入淺出的介紹一下它的使用方式。
安裝
在使用PHPExcel之前,我們需要先安裝PHPExcel到我們的程序中。PHPExcel是一款由PHPOffice團隊開發的插件,可以在PHPOffice的Github中下載到。我們推薦使用Composer安裝PHPExcel,只需在命令行終端中執行:
composer require phpoffice/phpexcel
即可安裝PHPExcel。
讀取Excel文件
PHPExcel的使用方法很簡單,如果我們要讀取Excel文件的數據,可以通過以下代碼完成操作:
$filepath = 'testdata.xlsx'; $fileType = \PHPExcel_IOFactory::identify($filepath); $objReader = \PHPExcel_IOFactory::createReader($fileType); if (!$objPHPExcel = $objReader->load($filepath)) { die('讀取文件失敗'); } $sheetData = $objPHPExcel->getActiveSheet()->toArray(null, true, true, true);
上述代碼中,我們首先定義要讀取的Excel文件路徑,然后通過PHPExcel_IOFactory::identify()方法獲取Excel文件的格式,然后通過PHPExcel_IOFactory::createReader()方法創建一個PHPExcel_Reader_IReader對象,最后通過load()方法讀取Excel并將結果返回到$objPHPExcel對象中。
接下來,我們使用$getActiveSheet()方法獲取Excel文件中的第一個工作表,再使用$toArray()方法將工作表轉換為數組格式,這樣我們就能夠讀取Excel中的數據了。
例如,如果我們想要讀取Excel文件中第一行第一列的數據,可以通過如下代碼實現:
$data = $sheetData[1]['A'];
創建Excel文件
如果我們要創建一個Excel文件,那么需要先進行以下幾個步驟:
- 創建一個PHPExcel對象
- 定義Excel格式,這里我們用Xlsx作為例子
- 設置Excel文檔屬性
- 設置標題行內容
- 按照需要設置Excel內容
- 保存Excel文件
例如,要創建一個包含兩列,10行數據的Excel文件,格式如下所示:
序號 | 名稱 |
---|---|
1 | phpexcel |
2 | phpword |
3 | phpspreadsheet |
4 | phppowerpoint |
5 | phpdocumentor |
6 | phpmailer |
7 | phpunit |
8 | phpcs |
9 | phpdepend |
10 | phpmd |
則可以通過如下代碼實現創建并保存Excel文件:
// 創建對象 $objPHPExcel = new \PHPExcel(); // 設置格式 $exceltype = new \PHPExcel_Writer_Excel2007($objPHPExcel); // 設置文件屬性 $objPHPExcel->getProperties()->setTitle("excel creation") ->setSubject("phpExcel") ->setDescription("test"); // 設置標題行 $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1', '序號') ->setCellValue('B1', '名稱'); // 填寫內容 $data = array( array("1", "phpexcel"), array("2", "phpword"), array("3", "phpspreadsheet"), array("4", "phppowerpoint"), array("5", "phpdocumentor"), array("6", "phpmailer"), array("7", "phpunit"), array("8", "phpcs"), array("9", "phpdepend"), array("10", "phpmd") ); $i = 2; foreach ($data as $item) { $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A' . $i, $item[0]) ->setCellValue('B' . $i, $item[1]); $i++; } // 保存文件 $filename = "test.xlsx"; $savePath = './'; $fileurl = $savePath . $filename; $exceltype->save($fileurl); echo '保存文件成功!';
總結
本文通過幾個實例,介紹了PHPExcel的讀寫Excel文件的操作,對于經常需要操作Excel文件的開發人員而言,掌握PHPExcel的使用是不可或缺的。同時還需要注意避免PHPExcel對大數據文件的使用,避免內存溢出,也需要注意PHPExcel兼容性問題。