Skip to main content

使用PHPExcel类读取excel文件,批量导入数据。

使用PHPExcel类读取excel文件文件的时候分为两种

一、从sheet中读取

$sheetCount=$objPHPExcel->getSheetCount();//获取excel文件里有多少个sheet
for($i=0;$i<$sheetCount;$i++){
$data=$objPHPExcel->getSheet($i)->toArray();//读取每个sheet里的数据 全部放入到数组中
print_r($data);
}

二、逐行逐列读取

foreach($objPHPExcel->getWorksheetIterator() as $sheet){//循环取sheet
foreach($sheet->getRowIterator() as $row){//逐行处理
if($row->getRowIndex()<2){
continue;
}
foreach($row->getCellIterator() as $cell){//逐列读取
$data=$cell->getValue();//获取单元格数据
echo $data." ";
}
echo '<br/>';
}
echo '<br/>';
}

下面是用ThinkPHP框架写的一个例子

//从文件中导入商品
public function import_goods()
{
//load("@.PHPExcel.PHPExcel.IOFactory");
header("Content-Type:text/html;charset=utf-8");
load("@.PHPExcel.PHPExcel");
$objReader = new PHPExcel();
$filename = APP_PATH.'goods.xls';
$fileType=PHPExcel_IOFactory::identify($filename);//自动获取文件的类型提供给phpexcel用
$objReader=PHPExcel_IOFactory::createReader($fileType);//获取文件读取操作对象
$objPHPExcel=$objReader->load($filename);//加载文件
$sheetCount=$objPHPExcel->getSheetCount();//获取excel文件里有多少个sheet

for($i=0;$i<$sheetCount;$i++){
$data=$objPHPExcel->getSheet($i)->toArray();//读取每个sheet里的数据 全部放入到数组中
//dump($data);
foreach ($data as $key=>$row)
{
if ($key>0)
{
dump($row);//每行的数据在这里 自由发挥 导入数据库中吧
//接收日期时间类型的时候 这样写 date('Y-m-d H:i:s',strtotime(trim($row[17])));
}
}
}


}