php excel批量导入,PHP将excel文件中的数据批量导入到数据库中
這幾天在做項目時,遇到了需要批量導入數據的情況,用戶將excel表格提交后,需要我們后臺這邊將excel表格信息中的內容全部插入到數據表中。當然,前提是用戶給我們的excel表格中的信息必須和我們表中的字段信息時對應的才行,下面是我這邊后臺進行批量導入數據的實現步驟。
首先我們需要下載phpExcel
phpExcel是用來操作Office Excel 文檔的一個PHP類庫,它基于微軟的OpenXML標準和PHP語言。可以使用它來讀取、寫入不同格式的電子表格.
有需要這個類庫的童鞋可以找我要,本人郵箱823410261@qq.com。
下載好phpExcel后,下面就是編碼實現部分了,首先說下本人處理的整體思路。
首先是需要得到excel表格中的數據,其次是需要將這些數據做成符合SQL規范的格式,其中的細節處理將在下面的代碼中展示,最后是將獲取的數據連同SQL語句,一起在程序中執行,將所有結果插入到數據表中。
require_once '../Classes/PHPExcel.php';
function getFileExcle($value){
$cgsdiseasesinterface = new Cgs_diseases_interface();
$filePath = $value;//$value為需要導入數據的excel文件
$PHPExcel = new PHPExcel();
/**默認用excel2007讀取excel,若格式不對,則用之前的版本進行讀取*/
$PHPReader = new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($filePath)){
$PHPReader = new PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($filePath)){
echo 'no Excel';
return ;
}
}
$PHPExcel = $PHPReader->load($filePath);
/**讀取excel文件中的第一個工作表*/
$currentSheet = $PHPExcel->getSheet(0);
/**取得最大的列號*/
$allColumn = $currentSheet->getHighestColumn();
/**取得一共有多少行*/
$allRow = $currentSheet->getHighestRow();
$row = array();
/**從第二行開始輸出,因為excel表中第一行為列名*/
for($currentRow = 2;$currentRow <= $allRow;$currentRow++){
/**從第A列開始輸出*/
$col = array();
for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
$val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue();/**ord()將字符轉為十進制數*/
array_push($col,$val);
}
array_push($row,$col);
}
foreach($row as $key=>$value){
$row[$key][1] = '\''.$value[1].'\'';
}
foreach($row as $key=>$value){
$row[$key] = implode(",",$value);
}
$row = implode("),(",$row);
$row = '('.$row.')';
$res = $cgsdiseasesinterface->insertDiseasesInformation($row);//該函數將數據插入到數據庫中
if($res){
echo json_encode(['code' => CODE_SUCCESS, 'result' => '批量導入成功']);
}else{
echo json_encode(['code' => CODE_ERROR, 'result' => '批量導入失敗']);
}
}
這里有一個點需要主要的是因為$currentRow是從2開始的,所以第一行應該是對應的字段的解釋,從第二行開始才是我們所需要的數據,大家可以根據自己程序的實際需要進行更改。
這里我是將所以的數據都做了字符串的拼接,好處是在數據庫是短連接時,可以只需要連接一次數據庫,這樣節約了時間和系統資源,如果數據庫的設置是長連接,則用字符串拼接的優勢不明顯。當然,大家其實也可以用循環來實現將數據插入到表中,這種方式的優勢是不需要對數據進行復雜的拼接處理,但壞處就是我剛才說的,增加了運行的時間,并相對來說更消耗系統資源。
總結
以上是生活随笔為你收集整理的php excel批量导入,PHP将excel文件中的数据批量导入到数据库中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红旗H9,将开启国产真豪华车
- 下一篇: 上汽红岩390闭锁如何打开?