工作需要,结合百度上的材料编写了一份PHPExcel 的导入例子:
<?php
//引入PHPExcel
require '../PHPExcel_1.8.0_doc/Classes/PHPExcel/IOFactory.php';
$act = $_POST["act"] == "" ? "view" : $_POST["act"];
//文件上传
if($act == "upload"){
if ($_FILES["file"]["error"] > 0)
{
//文件上传失败
echo "Error: " . $_FILES["file"]["error"] . "<br />";
return;
}
echo "<=================================上传的文件属性 start===================================><br/>";
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stored in: " . $_FILES["file"]["tmp_name"] . "<br />";
echo "<=================================上传的文件属性 end===================================><br/>";
$file = $_FILES["file"]["tmp_name"];
if (!file_exists($file)) {
exit("文件已不存在!" . EOL);
}
echo "<=================================解析文件 end===================================><br/>";
echo date('H:i:s') , " Load from " . $file . " file" , EOL . "<br />";
$callStartTime = microtime(true);
$objPHPExcel = PHPExcel_IOFactory::load($file);
$callEndTime = microtime(true);
$callTime = $callEndTime - $callStartTime;
echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL . "<br />";
echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL . "<br />";
$sheetCount = $objPHPExcel->getSheetCount();
echo 'Total: sheet size ' . $sheetCount . ' ', EOL . "<br />";
for($i = 0; $i < $sheetCount; $i++){
$sheet = $objPHPExcel->getSheet($i);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumm = $sheet->getHighestColumn(); // 取得总列数
$highestColumm = PHPExcel_Cell::columnIndexFromString($highestColumm);
//取得文件中标头
$titles = array();
for($j = 0; $j <= $highestColumm; $j++){
$pair_name = $sheet->getCellByColumnAndRow($j, 1)->getValue();
$titles[$j] = $pair_name;
}
//结合标头内容及每一行单独创建一个数组
for ($i = 2; $i <= $highestRow; $i++) {
$arr = array();
for($j = 0; $j <= $highestColumm; $j++){
$pair_name = $sheet->getCellByColumnAndRow($j, $i)->getValue();//获取制定行号列号的单元格内容
$pair_name = iconv('UTF-8', 'GBK', $pair_name);//防止中文乱码
$arr[$titles[$j]] = $pair_name;
}
print_r(arr);
echo '<br/>';
}
}
}
else if($act == "view"){
//文件上传页面
?>
<form action="analysis_insert.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="hidden" name="act" value="upload" />
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
}
?>