csv和excel php 解析_PHP 使用 phpoffice/phpexcel 读取 / 导出 xls/xlsx 或 CSV 表格文件数据...

使用PHP的PHPExcel库解析CSV和Excel文件,包括设置分隔符、编码和读取指定行的数据,最后将数据转为二维数组。
摘要由CSDN通过智能技术生成

use PHPExcel_IOFactory;

use PHPExcel_Cell;

$file = "test.xlsx";

$type = strtolower(pathinfo($file, PATHINFO_EXTENSION));

$file_dir = str_replace(substr($_SERVER['DOCUMENT_ROOT'], -6), '', $_SERVER['DOCUMENT_ROOT']);

$path = $file_dir . 'public/uploads/excel/' . $file;

if (!file_exists($path)) {

die('no file!');

}

//根据不同类型分别操作

if ($type == 'xlsx' || $type == 'xls') {

$objPHPExcel = PHPExcel_IOFactory::load($path);

} else if ($type == 'csv') {

$objReader = PHPExcel_IOFactory::createReader('CSV')

->setDelimiter(',')

->setInputEncoding('GBK')//不设置将导致中文列内容返回boolean(false)或乱码

->setEnclosure('"')

->setLineEnding("\r\n")

->setSheetIndex(0);

$objPHPExcel = $objReader->load($path);

} else {

die('Not supported file types!');

}

//选择标签页

$sheet = $objPHPExcel->getSheet(0);

//获取行数与列数,注意列数需要转换

$highestRowNum = $sheet->getHighestRow();

$highestColumn = $sheet->getHighestColumn();

$highestColumnNum = PHPExcel_Cell::columnIndexFromString($highestColumn);

//取得字段,这里测试表格中的第一行为数据的字段,因此先取出用来作后面数组的键名

$filed = array();

for ($i = 0; $i < $highestColumnNum; $i++) {

$cellName = PHPExcel_Cell::stringFromColumnIndex($i) . '1';

$cellVal = $sheet->getCell($cellName)->getValue();//取得列内容

$filed [] = $cellVal;

}

//开始取出数据并存入数组

$data = array();

for ($i = 2; $i <= $highestRowNum; $i++) {//ignore row 1

$row = array();

for ($j = 0; $j < $highestColumnNum; $j++) {

$cellName = PHPExcel_Cell::stringFromColumnIndex($j) . $i;

$cellVal = $sheet->getCell($cellName)->getValue();

$row[$filed[$j]] = $cellVal;

}

$data [] = $row;

}

var_dump($data);

//完成,可以存入数据库了

die;

gaodevops

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值