phpexcel不完全研究(二)匯入excel檔案
阿新 • • 發佈:2020-12-30
有匯出。自然就有匯入。功能多樣化嘛。
不廢話了,上程式碼。
我這裡使用的是tninkphp3.2框架
/**
* 匯入excel
*/
public function putExcel()
{
ini_set('max_execution_time', '0');
Vendor('PHPExcel.PHPExcel.IOFactory');
// 真實路徑 ./ThinkPHP/Library/Vendor/PHPExcel/PHPExcel/IOFactory.php
$filename = '訂單列表2018-12-2011_21_31.xls';
// 獲取檔案字尾名
$ext = $myext = substr($filename, strrpos($filename, '.'));
// 這個一定要判斷,不然會報錯。
if ($ext == '.xls') {
//如果excel檔案字尾名為.xls,匯入這個類
$reader = \PHPExcel_IOFactory::createReader('Excel5');
} else {
//如果excel檔案字尾名為.xlsx,匯入這個類
$reader = \PHPExcel_IOFactory::createReader('Excel2007');
}
$PHPExcel = $reader->load("./uploads/excel/訂單列表2018-12-2011_21_31.xls"); // 載入excel檔案
$sheet = $PHPExcel->getSheet(0); // 讀取第一個工作表
$highestRow = $sheet->getHighestRow(); // 取得總行數
$highestColumm = $sheet->getHighestColumn(); // 取得總列數
$array = [];
/** 迴圈讀取每個單元格的資料 */
for ($row = 1; $row <= $highestRow; $row++){//行數是以第1行開始
$dataset = [];
for ($column = 'A'; $column <= $highestColumm; $column++) {//列數是以A列開始
$dataset[] = $sheet->getCell($column.$row)->getValue();
}
$array[] = $dataset;
}
var_dump($array);die;
}
寫到這裡,就可以把你的excel檔案中的資料讀取成為一個二維陣列了。
之後就是將將二維陣列中的資料插入資料庫。
這個就不做演示了。
如果你的excel表格中有標題。按上邊的程式碼將excel中的資料讀取出之後,你會發現,二維陣列中的第一個陣列是標題,這個再執行寫入資料庫的時候要注意。
其他的,就沒有什麼了。
有好的建議,請在下方輸入你的評論。
歡迎訪問個人部落格
https://guanchao.site
歡迎訪問小程式: