/**
- 导出
- @param
- @param
- @return
*/
public function exportexcel()
{
set_time_limit(0);
ini_set(‘memory_limit’, ‘1024M’);
vendor(“PHPExcel.PHPExcel.PHPExcel”);
vendor(“PHPExcel.PHPExcel.Writer.IWriter”);
vendor(“PHPExcel.PHPExcel.Writer.Abstract”);
vendor(“PHPExcel.PHPExcel.Writer.Excel5”);
vendor(“PHPExcel.PHPExcel.Writer.Excel2007”);
vendor(“PHPExcel.PHPExcel.IOFactory”);
//$data = Db::table(‘enroll_activity_hotel’)->where(‘is_del’, ‘0’)->field(‘name,address,phone,departure_time,two_room,three_room’)->select();
$name = ‘酒店列表’;
$excel = new \PHPExcel(); //引用phpexcel
iconv(‘UTF-8’, ‘gb2312’, $name); //针对中文名转码
$header = [‘酒店名称’, ‘酒店地址’, ‘酒店电话’, ‘发车时间’, ‘两人间数’, ‘三人间数’]; //表头,名称可自定义
$excel->setActiveSheetIndex(0);
e
x
c
e
l
−
>
g
e
t
A
c
t
i
v
e
S
h
e
e
t
(
)
−
>
s
e
t
T
i
t
l
e
(
excel->getActiveSheet()->setTitle(
excel−>getActiveSheet()−>setTitle(name); //设置表名
$excel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(18);
$excel->getActiveSheet()->getColumnDimension(‘A’)->setWidth(30);
$excel->getActiveSheet()->getColumnDimension(‘B’)->setWidth(30);
$excel->getActiveSheet()->getColumnDimension(‘C’)->setWidth(30);
$excel->getActiveSheet()->getColumnDimension(‘D’)->setWidth(30);
$excel->getActiveSheet()->getColumnDimension(‘E’)->setWidth(30);
$excel->getActiveSheet()->getColumnDimension(‘F’)->setWidth(30);
l
e
t
t
e
r
=
a
r
r
a
y
(
′
A
′
,
′
B
′
,
′
C
′
,
′
D
′
,
′
E
′
,
′
F
′
,
′
G
′
,
′
H
′
,
′
I
′
,
′
J
′
,
′
K
′
,
′
L
′
,
′
M
′
,
′
N
′
,
′
O
′
,
′
P
′
,
′
Q
′
,
′
R
′
,
′
S
′
,
′
T
′
,
′
U
′
,
′
V
′
,
′
W
′
,
′
X
′
,
′
Y
′
,
′
Z
′
,
′
A
A
′
,
′
A
B
′
,
′
A
C
′
,
′
A
D
′
,
′
A
E
′
,
′
A
F
′
,
′
A
G
′
,
′
A
H
′
,
′
A
I
′
,
′
A
J
′
,
′
A
K
′
,
′
A
L
′
,
′
A
M
′
,
′
A
N
′
,
′
A
O
′
,
′
A
P
′
,
′
A
Q
′
,
′
A
R
′
,
′
A
S
′
,
′
A
T
′
,
′
A
U
′
,
′
A
V
′
,
′
A
W
′
,
′
A
X
′
,
′
A
Y
′
,
′
A
Z
′
)
;
/
/
生
成
表
头
f
o
r
(
letter = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ'); //生成表头 for (
letter=array(′A′,′B′,′C′,′D′,′E′,′F′,′G′,′H′,′I′,′J′,′K′,′L′,′M′,′N′,′O′,′P′,′Q′,′R′,′S′,′T′,′U′,′V′,′W′,′X′,′Y′,′Z′,′AA′,′AB′,′AC′,′AD′,′AE′,′AF′,′AG′,′AH′,′AI′,′AJ′,′AK′,′AL′,′AM′,′AN′,′AO′,′AP′,′AQ′,′AR′,′AS′,′AT′,′AU′,′AV′,′AW′,′AX′,′AY′,′AZ′);//生成表头for(i = 0;
i
<
c
o
u
n
t
(
i < count(
i<count(header); $i++) {
//设置表头值
e
x
c
e
l
−
>
g
e
t
A
c
t
i
v
e
S
h
e
e
t
(
)
−
>
s
e
t
C
e
l
l
V
a
l
u
e
(
"
excel->getActiveSheet()->setCellValue("
excel−>getActiveSheet()−>setCellValue("letter[$i]1",
h
e
a
d
e
r
[
header[
header[i]);
//设置表头字体样式
e
x
c
e
l
−
>
g
e
t
A
c
t
i
v
e
S
h
e
e
t
(
)
−
>
g
e
t
S
t
y
l
e
(
"
excel->getActiveSheet()->getStyle("
excel−>getActiveSheet()−>getStyle("letter[$i]1")->getFont()->setName(‘宋体’);
//设置表头字体大小
e
x
c
e
l
−
>
g
e
t
A
c
t
i
v
e
S
h
e
e
t
(
)
−
>
g
e
t
S
t
y
l
e
(
"
excel->getActiveSheet()->getStyle("
excel−>getActiveSheet()−>getStyle("letter[$i]1")->getFont()->setSize(14);
//设置表头字体是否加粗
e
x
c
e
l
−
>
g
e
t
A
c
t
i
v
e
S
h
e
e
t
(
)
−
>
g
e
t
S
t
y
l
e
(
"
excel->getActiveSheet()->getStyle("
excel−>getActiveSheet()−>getStyle("letter[$i]1")->getFont()->setBold(true);
//设置表头文字水平居中
e
x
c
e
l
−
>
g
e
t
A
c
t
i
v
e
S
h
e
e
t
(
)
−
>
g
e
t
S
t
y
l
e
(
"
excel->getActiveSheet()->getStyle("
excel−>getActiveSheet()−>getStyle("letter[$i]1")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
//设置文字上下居中
e
x
c
e
l
−
>
g
e
t
A
c
t
i
v
e
S
h
e
e
t
(
)
−
>
g
e
t
S
t
y
l
e
(
excel->getActiveSheet()->getStyle(
excel−>getActiveSheet()−>getStyle(letter[$i])->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER);
//设置单元格背景色
e
x
c
e
l
−
>
g
e
t
A
c
t
i
v
e
S
h
e
e
t
(
)
−
>
g
e
t
S
t
y
l
e
(
"
excel->getActiveSheet()->getStyle("
excel−>getActiveSheet()−>getStyle("letter[$i]1")->getFill()->getStartColor()->setARGB(‘FFFFFFFF’);
e
x
c
e
l
−
>
g
e
t
A
c
t
i
v
e
S
h
e
e
t
(
)
−
>
g
e
t
S
t
y
l
e
(
"
excel->getActiveSheet()->getStyle("
excel−>getActiveSheet()−>getStyle("letter[$i]1")->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);
e
x
c
e
l
−
>
g
e
t
A
c
t
i
v
e
S
h
e
e
t
(
)
−
>
g
e
t
S
t
y
l
e
(
"
excel->getActiveSheet()->getStyle("
excel−>getActiveSheet()−>getStyle("letter[$i]1")->getFill()->getStartColor()->setARGB(‘FF6DBA43’);
//设置字体颜色
e
x
c
e
l
−
>
g
e
t
A
c
t
i
v
e
S
h
e
e
t
(
)
−
>
g
e
t
S
t
y
l
e
(
"
excel->getActiveSheet()->getStyle("
excel−>getActiveSheet()−>getStyle("letter[$i]1")->getFont()->getColor()->setARGB(‘FFFFFFFF’);
}
//写入数据
$count = Db::table(‘enroll_activity_hotel’)->where(‘is_del’, ‘0’)->count(‘id’);
n
u
m
s
=
c
e
i
l
(
nums = ceil(
nums=ceil(count / 2000);
for ($i = 0; $i <
n
u
m
s
;
+
+
nums; ++
nums;++i) {
d
a
t
a
=
D
b
:
:
t
a
b
l
e
(
′
e
n
r
o
l
l
a
c
t
i
v
i
t
y
h
o
t
e
l
′
)
−
>
w
h
e
r
e
(
′
i
s
d
e
l
′
,
′
0
′
)
−
>
f
i
e
l
d
(
′
n
a
m
e
,
a
d
d
r
e
s
s
,
p
h
o
n
e
,
d
e
p
a
r
t
u
r
e
t
i
m
e
,
t
w
o
r
o
o
m
,
t
h
r
e
e
r
o
o
m
′
)
−
>
l
i
m
i
t
(
(
data = Db::table('enroll_activity_hotel')->where('is_del', '0')->field('name,address,phone,departure_time,two_room,three_room')->limit((
data=Db::table(′enrollactivityhotel′)−>where(′isdel′,′0′)−>field(′name,address,phone,departuretime,tworoom,threeroom′)−>limit((i * 2000) . ‘,’ . (2000))->select();
if (!empty($data)) {
$param =
i
∗
2000
;
/
/
写
入
数
据
f
o
r
e
a
c
h
(
i * 2000; //写入数据 foreach (
i∗2000;//写入数据foreach(data as $k => $v) {
$n = $param + $k + 2;
//列字体居中
$excel->getActiveSheet()->getStyle(‘A’ . $n)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$excel->getActiveSheet()->getStyle(‘B’ . $n)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$excel->getActiveSheet()->getStyle(‘C’ . $n)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$excel->getActiveSheet()->getStyle(‘D’ . $n)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$excel->getActiveSheet()->getStyle(‘E’ . $n)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$excel->getActiveSheet()->getStyle(‘F’ . $n)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$excel->getActiveSheet()->getStyle(‘D’)->getNumberFormat()->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_TEXT);
//从第二行开始写入数据(第一行为表头)
$excel->getActiveSheet()->setCellValue(‘A’ . $n, $v[‘name’]);
$excel->getActiveSheet()->setCellValue(‘B’ . $n, $v[‘address’]);
$excel->getActiveSheet()->setCellValue(‘C’ . $n, $v[‘phone’]);
$excel->getActiveSheet()->setCellValue(‘D’ . $n, $v[“departure_time”]);
$excel->getActiveSheet()->setCellValue(‘E’ . $n, $v[‘two_room’]);
$excel->getActiveSheet()->setCellValue(‘F’ . $n, KaTeX parse error: Expected 'EOF', got '}' at position 19: …three_room']); }̲ } else { break…data);
//清理缓冲区,避免中文乱码
ob_end_clean();//清除缓冲区,避免乱码
header(‘Content-Type: application/vnd.ms-excel’);
header(‘Content-Disposition: attachment;filename="’ . $name . ‘.xlsx"’);
header(‘Cache-Control: max-age=0’);
//导出数据
KaTeX parse error: Undefined control sequence: \PHPExcel at position 13: res_excel = \̲P̲H̲P̲E̲x̲c̲e̲l̲_IOFactory::cre…excel, ‘Excel2007’);
$res_excel->save(‘php://output’);
}
/**
- daoru
- @param
- @param
- @return
*/
public function implodexcel()
{
set_time_limit(0);
if (!empty(KaTeX parse error: Expected '}', got 'EOF' at end of input: …传文件 if (!empty(_FILES[‘import’][‘error’])) {
return array(‘status’ => 0, ‘msg’ => ‘文件上传失败’);
}
$tmp_file = $_FILES [‘import’] [‘tmp_name’];
$file_types = explode(".", $_FILES [‘import’] [‘name’]);
$file_type =
f
i
l
e
t
y
p
e
s
[
c
o
u
n
t
(
file_types [count(
filetypes[count(file_types) - 1];
/判别是不是.xls文件,判别是不是excel文件/
if (strtolower(KaTeX parse error: Expected 'EOF', got '&' at position 22: …ype) != "xlsx" &̲& strtolower(file_type) != “xls”) {
$this->error(‘不是Excel文件,重新上传’);
}
/设置上传路径/
/百度有些文章写的上传路径经过编译之后斜杠不对。不对的时候用大写的DS代替,然后用连接符链接就可以拼凑路径了。/
$savePath = ROOT_PATH . ‘public’ . DS . ‘upload’ . DS;/以时间来命名上传的文件/
$str = date(‘Ymdhis’);
$file_name = $str . “.” .
f
i
l
e
t
y
p
e
;
/
∗
是
否
上
传
成
功
∗
/
i
f
(
!
c
o
p
y
(
file_type; /*是否上传成功*/ if (!copy(
filetype;/∗是否上传成功∗/if(!copy(tmp_file, $savePath . $file_name)) {
KaTeX parse error: Expected 'EOF', got '}' at position 22: …error('上传失败'); }̲ /* *注意:这里调用执行了…res,再进行数据库写入
*/
$res =
t
h
i
s
−
>
r
e
a
d
(
this->read(
this−>read(savePath . $file_name, “UTF-8”, $file_type);//传参,判断office2007还是office2003
u
n
i
q
u
e
s
=
a
r
r
a
y
f
i
l
t
e
r
(
a
r
r
a
y
c
o
l
u
m
n
(
uniques = array_filter(array_column(
uniques=arrayfilter(arraycolumn(res, 0));
f
i
l
p
u
n
i
=
a
r
r
a
y
f
l
i
p
(
a
r
r
a
y
f
l
i
p
(
filpuni = array_flip(array_flip(
filpuni=arrayflip(arrayflip(uniques));
if (count(
u
n
i
q
u
e
s
)
!
=
c
o
u
n
t
(
uniques) != count(
uniques)!=count(filpuni)) {
return array(‘status’ => 0, ‘msg’ => “酒店名称有重复项,请处理后再导入”);
}
$datas = Db::table(‘enroll_activity_hotel’)->where(‘is_del’, ‘0’)->field(‘id,name,address,phone,departure_time,two_room,three_room’)->select();
a
n
a
m
e
s
=
a
r
r
a
y
c
o
l
u
m
n
(
anames = array_column(
anames=arraycolumn(datas, ‘name’);
c
o
u
l
u
d
a
t
e
=
a
r
r
a
y
c
o
l
u
m
n
(
couludate = array_column(
couludate=arraycolumn(datas, null, ‘name’);//print_r(KaTeX parse error: Expected '}', got 'EOF' at end of input: …的写入*/ foreach (res as $k => $v) {
//如果导入数据为空,跳过
if (empty(array_filter($v))) {
continue;
}
if ($k > 1) {
m
b
l
e
n
g
t
h
=
m
b
s
t
r
l
e
n
(
mblength = mb_strlen(
mblength=mbstrlen(v[0], ‘UTF8’);
if ($mblength > 50 || $mblength < 1) {
Db::rollback();
return array(‘status’ => 0, ‘msg’ => ‘酒店名’ . $v[0] . ‘:字符长度不符请控制在2-50字符以内’);
}
p
h
o
l
e
n
g
t
h
=
m
b
s
t
r
l
e
n
(
pholength = mb_strlen(
pholength=mbstrlen(v[2], ‘UTF8’);
if ($pholength > 20 || $pholength < 1) {
Db::rollback();
return array(‘status’ => 0, ‘msg’ => ‘酒店’ . KaTeX parse error: Expected 'EOF', got '}' at position 20: … . ':电话长度不符'); }̲ if(!is_numeric…v[2])) {
Db::rollback();
return array(‘status’ => 0, ‘msg’ => ‘酒店’ . $v[0] . ‘:电话必须为数字’);
}
a
d
r
e
s
l
e
n
g
t
h
=
m
b
s
t
r
l
e
n
(
adreslength = mb_strlen(
adreslength=mbstrlen(v[1], ‘UTF8’);
if ($adreslength > 100 || $adreslength < 1) {
Db::rollback();
return array(‘status’ => 0, ‘msg’ => ‘酒店’ . $v[0] . ‘:地址长度不符’);
}
t
i
m
e
l
e
n
g
t
h
=
m
b
s
t
r
l
e
n
(
timelength = mb_strlen(
timelength=mbstrlen(v[3], ‘UTF8’);
if ($timelength > 20 || $timelength < 1) {
Db::rollback();
return array(‘status’ => 0, ‘msg’ => ‘酒店’ . $v[0] . ‘:发车时间长度不符’);
}
t
o
r
o
m
l
e
n
g
t
h
=
m
b
s
t
r
l
e
n
(
toromlength = mb_strlen(
toromlength=mbstrlen(v[4], ‘UTF8’);
t
r
e
r
o
m
l
e
n
g
t
h
=
m
b
s
t
r
l
e
n
(
treromlength = mb_strlen(
treromlength=mbstrlen(v[5], ‘UTF8’);
if ($toromlength < 1 || $treromlength < 1) {
Db::rollback();
return array(‘status’ => 0, ‘msg’ => ‘酒店’ . KaTeX parse error: Expected 'EOF', got '}' at position 31: …写,没有请填写数字为0'); }̲ if(!is_numeric…v[4])) {
Db::rollback();
return array(‘status’ => 0, ‘msg’ => ‘酒店’ . KaTeX parse error: Expected 'EOF', got '}' at position 22: … ':房间数必须为数字'); }̲ if(!is_numeric…v[5])) {
Db::rollback();
return array(‘status’ => 0, ‘msg’ => ‘酒店’ . $v[0] . ‘:房间数必须为数字’);
}
i
s
e
x
i
t
=
a
r
r
a
y
s
e
a
r
c
h
(
isexit = array_search(
isexit=arraysearch(v[0], $anames);
if (false === $isexit) {
d
a
t
a
[
data[
data[k][‘name’] = $v[0];
d
a
t
a
[
data[
data[k][‘address’] = $v[1];
d
a
t
a
[
data[
data[k][‘phone’] = $v[2];
d
a
t
a
[
data[
data[k][‘departure_time’] = $v[3];
d
a
t
a
[
data[
data[k][‘two_room’] = $v[4];
d
a
t
a
[
data[
data[k][‘three_room’] = $v[5];
d
a
t
a
[
data[
data[k][‘is_open’] = 1;
d
a
t
a
[
data[
data[k][‘add_admin_id’] = session(‘user.id’);
d
a
t
a
[
data[
data[k][‘add_time’] = time();
d
a
t
a
[
data[
data[k][‘update_admin_id’] = session(‘user.id’);
d
a
t
a
[
data[
data[k][‘update_time’] = time();
} else {
//如果数据表中有本账户,判断他最新导入的表格是否修改过信息
if (
c
o
u
l
u
d
a
t
e
[
couludate[
couludate[v[0]][‘address’] != $v[1] ||
c
o
u
l
u
d
a
t
e
[
couludate[
couludate[v[0]][‘phone’] != $v[2] ||
c
o
u
l
u
d
a
t
e
[
couludate[
couludate[v[0]][‘departure_time’] != $v[3] ||
c
o
u
l
u
d
a
t
e
[
couludate[
couludate[v[0]][‘two_room’] != $v[4] ||
c
o
u
l
u
d
a
t
e
[
couludate[
couludate[v[0]][‘three_room’] != $v[5]) {
d
a
t
a
u
p
[
dataup[
dataup[k][‘id’] =
c
o
u
l
u
d
a
t
e
[
couludate[
couludate[v[0]][‘id’];
d
a
t
a
u
p
[
dataup[
dataup[k][‘address’] = $v[1];
d
a
t
a
u
p
[
dataup[
dataup[k][‘phone’] = $v[2];
d
a
t
a
u
p
[
dataup[
dataup[k][‘departure_time’] = $v[3];
d
a
t
a
u
p
[
dataup[
dataup[k][‘two_room’] = $v[4];
d
a
t
a
u
p
[
dataup[
dataup[k][‘three_room’] = $v[5];
d
a
t
a
u
p
[
dataup[
dataup[k][‘update_admin_id’] = session(‘user.id’);
d
a
t
a
u
p
[
dataup[
dataup[k][‘update_time’] = time();
}
}
}
}
if (isset(
d
a
t
a
u
p
)
∣
∣
i
s
s
e
t
(
dataup) || isset(
dataup)∣∣isset(data)) {
//如果有更新的数据,批量更新
if (isset($dataup)) {
foreach ($dataup as $key => $value) {
$updas = Db::table(‘enroll_activity_hotel’)->where(‘id’,
v
a
l
u
e
[
′
i
d
′
]
)
−
>
u
p
d
a
t
e
(
value['id'])->update(
value[′id′])−>update(value);
if (!$updas) {
Db::rollback();
return array(‘status’ => 0, ‘msg’ => $e->getMessage());
}
}
}
if (isset($data)) {
//插入的操作最好放在循环外面
r
e
s
u
l
t
=
D
b
:
:
t
a
b
l
e
(
′
e
n
r
o
l
l
a
c
t
i
v
i
t
y
h
o
t
e
l
′
)
−
>
i
n
s
e
r
t
A
l
l
(
result = Db::table('enroll_activity_hotel')->insertAll(
result=Db::table(′enrollactivityhotel′)−>insertAll(data);
if (!$result) {
Db::rollback();
return array(‘status’ => 0, ‘msg’ => $e->getMessage());
}
}
Db::commit();
return array(‘status’ => 1, ‘msg’ => “导入成功”);
} else {
Db::rollback();
return array(‘status’ => 0, ‘msg’ => “重复导入”);
}
} catch (\Exception $e) {
Db::rollback();
return array(‘status’ => 0, ‘msg’ => $e->getMessage());
}
}
}
/**
- 导入方法附属方法
- @param
- @param
- @return
*/
public function read($filename, $encode, $file_type)
{
vendor(“PHPExcel.PHPExcel.PHPExcel”);
vendor(“PHPExcel.PHPExcel.Writer.IWriter”);
vendor(“PHPExcel.PHPExcel.Writer.Abstract”);
vendor(“PHPExcel.PHPExcel.Writer.Excel5”);
vendor(“PHPExcel.PHPExcel.Writer.Excel2007”);
vendor(“PHPExcel.PHPExcel.IOFactory”);
if (strtolower($file_type) == ‘xls’)//判断excel表类型为2003还是2007
{
Vendor(“Excel.PHPExcel.Reader.Excel5”);
$objReader = \PHPExcel_IOFactory::createReader(‘Excel5’);
} elseif (strtolower($file_type) == ‘xlsx’) {
Vendor(“Excel.PHPExcel.Reader.Excel2007”);
$objReader = \PHPExcel_IOFactory::createReader(‘Excel2007’);
}
$objReader->setReadDataOnly(true);
$objPHPExcel =
o
b
j
R
e
a
d
e
r
−
>
l
o
a
d
(
objReader->load(
objReader−>load(filename);
$objWorksheet = $objPHPExcel->getActiveSheet();
$highestRow = $objWorksheet->getHighestRow();
$highestColumn = $objWorksheet->getHighestColumn();
KaTeX parse error: Undefined control sequence: \PHPExcel at position 22: …tColumnIndex = \̲P̲H̲P̲E̲x̲c̲e̲l̲_Cell::columnIn…highestColumn);
e
x
c
e
l
D
a
t
a
=
a
r
r
a
y
(
)
;
f
o
r
(
excelData = array(); for (
excelData=array();for(row = 1; $row <= $highestRow; KaTeX parse error: Expected '}', got 'EOF' at end of input: row++) { for (col = 0; $col < $highestColumnIndex; $col++) {
e
x
c
e
l
D
a
t
a
[
excelData[
excelData[row][] = (string)
o
b
j
W
o
r
k
s
h
e
e
t
−
>
g
e
t
C
e
l
l
B
y
C
o
l
u
m
n
A
n
d
R
o
w
(
objWorksheet->getCellByColumnAndRow(
objWorksheet−>getCellByColumnAndRow(col, $row)->getValue();
}
}
return $excelData;
}
Excel的基础入门操作,协助你掌握从零基础入门到高级技巧应用(全7集) 视频教程下载地址:https://306t.com/file/686368-477371689