本文目录一览:
PHPExcel文件如何导入成数组
?php
require_once 'PHPExcel/IOFactory.php';
$reader = PHPExcel_IOFactory::createReader('Excel5'); // 读取旧版 excel 档案
$PHPExcel = $reader-load("y.xls"); // 档案名称
$sheet = $PHPExcel-getSheet(0); // 读取第一个工作表(编号从 0 开始)
$highestRow = $sheet-getHighestRow(); // 取得总列数
$info=array();
$name=array();
$sex=array();
$zw=array();
$mo=array();
$off=array();
for ($row = 1; $row = $highestRow;++$row) {
for ($column = 1; $column =6;++$column) {
$val = $sheet-getCellByColumnAndRow($column, $row)-getValue();
switch($column)
{
case 1:
$info[]=$val;
break;
case 2:
$name[]=$val;
break;
case 3:
$sex[]=$val;
break;
case 4:
$zw[]=$val;
break;
case 5:
$mo[]=$val;
break;
case 6:
$off[]=$val;
break;
}
}
}
?
phpexcel怎么去掉空行
下面路径可以改为你自己项目中的路径,我从从网上搜了也没个具体的办法,只好这样去除空行了!!!
/**
* 将excel数据转换为数组
* @param string $filePath
* @param int $sheet
* @return array
*/
public function actionRead($filePath='',$sheet=0)
{
// 返回值
$data = array();
if(empty($filePath) || !file_exists($filePath)) return $data;
include "data/extend/phpexcel_classes/PHPExcel/Reader/Excel2007.php";
$PHPReader = new \PHPExcel_Reader_Excel2007();
// 建立reader对象
if(!$PHPReader-canRead($filePath)){
include "data/extend/phpexcel_classes/PHPExcel/Reader/Excel5.php";
$PHPReader = new \PHPExcel_Reader_Excel5();
if(!$PHPReader-canRead($filePath)) return $data;
}
// 建立excel对象
$PHPExcel = $PHPReader-load($filePath);
// 读取excel文件中的指定工作表
$currentSheet = $PHPExcel-getSheet($sheet);
// 取得最大的列号
$allColumn = $currentSheet-getHighestColumn();
// 取得一共有多少行
$allRow = $currentSheet-getHighestRow();
// 循环读取每个单元格的内容。注意行从2开始,列从A开始
for($rowIndex = 2; $rowIndex = $allRow; $rowIndex++){
// 每一行的数据
$row_data = array();
$empty_num = 0;
for($colIndex = 'A';$colIndex = $allColumn; $colIndex++){
$index = $colIndex . $rowIndex;
$cell = $currentSheet-getCell($index)-getValue();
is_object($cell) $cell = $cell-__toString();
$row_data[] = $cell;
empty($cell) $empty_num++;
}
if ($empty_num count($row_data)) {
$data[] = $row_data;
}
}
return $data;
}
tp5 Excel 批量导入 --- 2019-07-17
//引入Excel公共类
vendor("PHPExcel.Classes.PHPExcel");
vendor('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
vendor('PHPExcel.Classes.PHPExcel.Reader.Excel5');
$objPHPExcel = new \PHPExcel();
$file = request()-file('filename');
$info = $file-validate(['ext' = 'xlsx,xls,csv'])-move(ROOT_PATH . 'public' . DS . 'uploads/import');//上传验证后缀名,以及上传之后移动的地址-phpexcel转换数组
if($info){
$exclePath = $info-getSaveName(); //获取文件名
$file_name = ROOT_PATH . 'public' . DS . 'uploads/import' . DS . $exclePath; //上传文件的地址
$objReader =\PHPExcel_IOFactory::createReader('Excel5');
$obj_PHPExcel =$objReader-load($file_name, $encode = 'utf-8'); //加载文件内容,编码utf-8
$excel_array=$obj_PHPExcel-getsheet(0)-toArray(); //转换为数组格式
array_shift($excel_array); //删除第一个数组(标题);
$datas = [];
$data_errors = [];
//处理Excel导入时数据为空的情况
foreach($excel_array as $k=$v) {
if(!empty($v[0] || $v[1] || $v[2])){
$excel_list[] = $v;
}
}
$cn=count($excel_list);
//循环遍历,组装数据进行入库
foreach ($excel_list as $k=$v){
if(!empty($v[0]) !empty($v[1])){
$wh['job_number'] = $v[0];
$wh['is_deleted'] = '1';
$res_info=db('member')-where($wh)-count();
if($res_info ==0){
$data=array(
'job_number'=$v[0],
'user_name'=$v[1],
'department'=$v[2],
'create_id' =$admin_id,
'create_time'=date('Y-m-d H:i:s'),
);
$datas[] = $data;
}
}else{
$error_data=array(
'job_number'=$v[0],
'user_name'=$v[1],
'department'=$v[2],
'create_id' =$admin_id,
'create_time'=date('Y-m-d H:i:s'),
);
$data_errors[] = $error_data;
}
}
$errors_data = count($data_errors);
$repetition = $cn-$errors_data;
$success=db('member')-insertAll($datas); //批量插入数据
if($success){
$cn_fail=count($data_errors);
$content = "批量新增抽奖参与者名单记录:".json_encode($data);
$this-writelog($admin_id,$content,'4');//4出席成员
$error=$cn-$success;
$error_all = $error-$cn_fail;
$data = array(
'code'=1,
'message'="总{$cn}条,导入成功{$success}条,其中失败{$cn_fail}条,重复{$error_all}条",
'result'=$data_errors,
);
return json($data);
}
return json(['code'=1,'message'="总{$cn}条,导入成功0条,其中重复{$repetition}条,失败{$errors_data}条",'result'=$data_errors]);-phpexcel转换数组
}else{
// 上传失败获取错误信息
return json(['code'=2,'message'='导入失败','result'=null]);
}
php将excel表格转化为数组为什么不能转化Z后面的列
Z之后就是AA,下面的代码就可以支持:
for ($col='A';$col=$currentSheet-getHighestColumn();$col++)
$col++在'Z'的时候会转换为'AA'
不知道你遇到了什么问题