×

phpexcel转换数组

phpexcel转换数组(php数组转换为json)

admin admin 发表于2023-03-24 17:05:08 浏览44 评论0

抢沙发发表评论

本文目录一览:

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'

不知道你遇到了什么问题