思路一:使用xml檔案儲存Excel中列與資料表中欄位對應關係,然後通過xml檔案來添加資料思路二:Excel中第一行儲存欄位名,其他行儲存資料思路三:將Excel中列與資料表中欄位對應關係,用一個.php檔案儲存在此講解的是思路二,使用的是PHPExcel
1.建立對象
$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
2.指定excel檔案
$objPHPExcel = $objReader->load($newFileName);
$sheet = $objPHPExcel->getSheet(0); //擷取操作Excel中第一張表的資料
$highestRow = $sheet->getHighestRow(); // 取得總行數 返回是int類型
$highestColumn = $sheet->getHighestColumn(); // 取得總列數 返回是字母
$allFileds='';
$filedsSum='A'; //設定有效列的預設最大值
$dataInfo='';
$tidIndex=0;
for ($i='A';$i<$highestColumn;++$i){
$curFiled=$sheet->getCell($i.'1')->getValue();
if(!empty($curFiled)){ //過濾無效的列
$filedsSum=$i;
$allFileds.=',`'.$curFiled.'`';
}
}
$inputDataSql=''; //插入sql語句
for($j=2; $j<=$highestRow; $j++){
$inputData=array();
for ($i='A';$i<=$filedsSum;++$i){
$inputData[]='\''.$sheet->getCell($i.$j)->getValue().'\'';
//因為不確定該欄位是否為string還是int類型,所以都加上''就不會出現錯誤
$inputDataSql.=',('.implode(',', $inputData).')';
}
$inputDataSql=substr($inputDataSql,1); //去掉最前面的一個','逗號
$sql='INSERT INTO ('.$allFileds.') VALUES '.$inputDataSql;
最後調用相應的資料庫操作對象,執行插入操作即可。
以上就介紹了php操作Excel檔案,將Excel中資料匯入到資料庫,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。