Please enable java script to visit.
NOTEBOOK
HOMEPHP / MySQLJS / HTMLWXappPythonC++Blender其他
PHPExcel 读取 excel 文件到数组 - NOTEBOOK
PHPExcel 读取 excel 文件到数组
PHP / MySQL
Posted on 2024-05-24
摘要 : PHPExcel 已经停止更新,但对于简单读取/写入excel还是能凑合着用。使用自定义函数可以自动读取整个 excel 文件到数组中,所以不适合大数据文件,只适合普通少量数据的xls、xlsx文件,当然还有csv等。
❱ 日常少量数据的表格

将excel文件读取成数组,支持一个excel文件里有多个 sheet。
$keepName=true 时可以按照表名或序号来作为键名。
$caculation=true 时,输出的是计算结果(如果是公式),false时输出的是原始公式。
使用 toArray 将数据读进数组中,所以适合日常少量数据的表格,上千行以上的数据就可能会出现内存不够、超时等异常情况。
function readExcel($fileName,$keepName=true,$caculation=true){
if(!file_exists($fileName)){echo '文件不存在';exit;}
// 引入phpexcel //拷贝文件夹时记得要有 PHPExcel.php
require_once __DIR__. '/PHPExcelClasses/PHPExcel.php';

// 为了减少内存使用(可以减少一点)
$inputFileType = PHPExcel_IOFactory::identify($fileName); // 确定文件类型
$objReader = PHPExcel_IOFactory::createReader($inputFileType); // 选择对应的读取器
$objReader->setReadDataOnly(true); // 只读取数据

// 载入文件
$objPHPExcel = $objReader->load($fileName);
// 读取总表格数
// $sheetCount = $objPHPExcel->getSheetCount();
// 读取表格名字
$sheetNames = $objPHPExcel->getSheetNames();

// print_r($sheetNames);
foreach($sheetNamesas $sheetNum=>$name){
$objPHPExcel->setActiveSheetIndex($sheetNum);
if(!$keepName){
$name = $sheetNum; // 如果false,则使用序号作为key
}
// 使用 toArray 将数据读进数组中
$excelData[$name] = $objPHPExcel->getSheet($sheetNum)->toArray(null, $caculation, true, true);

}
return $excelData;
}