在把excle导入数据库的时候,可能会出现数据为“=某个单元格”(=A3),就先把.xls文件转为.csv文件,再把csv文件导入数据库。
<?php
header("Content-Type:text/html;charset=utf-8");
require_once 'PHPExcel/PHPExcel.php';
$d = dir('xls/');
while (($file = $d->read()) !== false){
if(substr(strrchr($file, '.'), 1) == 'xls'){
$arr[] = $file;
}
}
//把所有xls文件列出列表,勾选提交到这边$_POST
foreach($_POST as $k => $item){
foreach($item as $v){
//只获取文件名
$file = str_replace('.xls','',$arr[$v]);
getCsv($file);
}
}
function getCsv($file){
$filename = "xls/".$file.".xls";
$objReader = new PHPExcel_Reader_Excel5();
//$objReader = PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader->load($filename);
//$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
$objWriter = new PHPExcel_Writer_CSV($objPHPExcel);
$objWriter->save(str_replace('.xls', '.csv',$filename));
$root = "xls/".$file.".csv";
$newRoot='csv/'.$file.'.csv'; //新目录
copy($root,$newRoot); //拷贝到新目录
unlink($root); //删除旧目录下的文件
}
?>