1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php excel批量导入 PHP将excel文件中的数据批量导入到数据库中

php excel批量导入 PHP将excel文件中的数据批量导入到数据库中

时间:2021-02-02 05:35:52

相关推荐

php excel批量导入 PHP将excel文件中的数据批量导入到数据库中

这几天在做项目时,遇到了需要批量导入数据的情况,用户将excel表格提交后,需要我们后台这边将excel表格信息中的内容全部插入到数据表中。当然,前提是用户给我们的excel表格中的信息必须和我们表中的字段信息时对应的才行,下面是我这边后台进行批量导入数据的实现步骤。

首先我们需要下载phpExcel

phpExcel是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格.

有需要这个类库的童鞋可以找我要,本人邮箱823410261@。

下载好phpExcel后,下面就是编码实现部分了,首先说下本人处理的整体思路。

首先是需要得到excel表格中的数据,其次是需要将这些数据做成符合SQL规范的格式,其中的细节处理将在下面的代码中展示,最后是将获取的数据连同SQL语句,一起在程序中执行,将所有结果插入到数据表中。

require_once '../Classes/PHPExcel.php';

function getFileExcle($value){

$cgsdiseasesinterface = new Cgs_diseases_interface();

$filePath = $value;//$value为需要导入数据的excel文件

$PHPExcel = new PHPExcel();

/**默认用excel读取excel,若格式不对,则用之前的版本进行读取*/

$PHPReader = new PHPExcel_Reader_Excel();

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开始的,所以第一行应该是对应的字段的解释,从第二行开始才是我们所需要的数据,大家可以根据自己程序的实际需要进行更改。

这里我是将所以的数据都做了字符串的拼接,好处是在数据库是短连接时,可以只需要连接一次数据库,这样节约了时间和系统资源,如果数据库的设置是长连接,则用字符串拼接的优势不明显。当然,大家其实也可以用循环来实现将数据插入到表中,这种方式的优势是不需要对数据进行复杂的拼接处理,但坏处就是我刚才说的,增加了运行的时间,并相对来说更消耗系统资源。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。