2022-03-13 保存表格
2022-03-13 本文已影响0人
一粟01
1 加载autoload.php
载入composer自动加载文件
使用命名空间里的类文件,(可以给类文件的命名空间起个别名)
实例化Spreadsheet类
<?php
#1 载入文件
#载入composer自动加载文件
require 'vendor/autoload.php';
/*
#使用命名空间里的类文件
use PhpOffice\PhpSpreadsheet\Spreadsheet;
#实例化Spreadsheet类
$shili1 = new Spreadsheet();
*/
#使用命名空间里的类文件,并给类文件的命名空间起个别名
use PhpOffice\PhpSpreadsheet\Spreadsheet as leim1;
#实例化Spreadsheet类,用类的别名
$shili1 = new leim1();
?>
2 单元格及单元格值的获取、设置
获取活动工作簿
获取单元格
设置单元格的值
获取单元格的值
<?php
#2 单元格操作
#获取活动工作簿 网站根目录下,要有“i1.xlsx”这个文件
$gzbu1 = $shili1->getActiveSheet('i1.xlsx');
#获取单元格
$dygeB2 = $gzbu1->getCell('B2');
#设置单元格的值
$valB2 = $dygeB2->setValue('东方朔');
#获取单元格的值
$valB21 = $dygeB2->getValue('B2');
$valB23 = $gzbu1->getCell('B2')->getValue();
//获取单元格,获取单元格坐标
echo $valB23 = $gzbu1->getCellByColumnAndRow(3,2)->getCoordinate();
?>
3 保存表格
(使用xlsx类)
先是命名空间的类
使用命名空间里的类文件
类文件的实例化
保存文件
<?php
#3 保存表格 #使用xlsx类
#先是命名空间的类
#使用命名空间里的类文件
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
#类文件的实例化
$wenj1 = new Xlsx($shili1);
#保存文件
$wenj1->save('b1.xlsx');
?>
完整代码
<?php
#1 载入文件
#载入composer自动加载文件
require 'vendor/autoload.php';
/*
#使用命名空间里的类文件
use PhpOffice\PhpSpreadsheet\Spreadsheet;
#实例化Spreadsheet类
$shili1 = new Spreadsheet();
*/
#使用命名空间里的类文件,并给类文件的命名空间起个别名
use PhpOffice\PhpSpreadsheet\Spreadsheet as leim1;
#实例化Spreadsheet类,用类的别名
$shili1 = new leim1();
#2 单元格操作
#获取活动工作簿 网站根目录下,要有“i1.xlsx”这个文件
$gzbu1 = $shili1->getActiveSheet('i1.xlsx');
#获取单元格
$dygeB2 = $gzbu1->getCell('B2');
#设置单元格的值
$valB2 = $dygeB2->setValue('东方朔');
#获取单元格的值
$valB21 = $dygeB2->getValue('B2');
$valB23 = $gzbu1->getCell('B2')->getValue();
//获取单元格,获取单元格坐标
echo $valB23 = $gzbu1->getCellByColumnAndRow(3,2)->getCoordinate();
#3 保存表格 #使用xlsx类
#先是命名空间的类
#使用命名空间里的类文件
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
#类文件的实例化
$wenj1 = new Xlsx($shili1);
#保存文件
$wenj1->save('b1.xlsx');
?>
实测,可以运行。
很多教程里,把变量名取成跟关键字一样,让初学者看着云里雾里,个人很不喜欢。所以,虽然我的笔记是从别人那里学来的,但是语句做了简单处理,能自由命名的地方,尽量用拼音+数字表示了。
4 修改代码
以上,是教程,拼起来的。
教程中要先提供一个
网站根目录下已有的文件(i1.xlsx)
(此处使用引用格式,只是强调一下)
这种做法,通用性不强。
能不能直接先创建一个文件,再设置单元格的值?当然,最后是要保存的。
可借鉴上面的教程,
第2步先保存文件,
第3步再读取这个文件,
第4步最后还是保存为这个文件。
于是,修改代码,并进行调试,最后实测可行。
另外,将spreadsheet安装到主站点根目录下,
在子站点中加载文件,require 'vendor/autoload.php';
代码修改为
require $_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php';
其中$_SERVER['DOCUMENT_ROOT']
是调用上层目录
所有代码如下:
<?php
#1 载入文件
#载入composer自动加载文件
#require 'vendor/autoload.php';
require $_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php';
#使用命名空间里的类文件
use PhpOffice\PhpSpreadsheet\Spreadsheet;
#实例化Spreadsheet类
$shili1 = new Spreadsheet();
#2 保存表格 #使用xlsx类
#先是命名空间的类
#使用命名空间里的类文件
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
#类文件的实例化
$wenj1 = new Xlsx($shili1);
#保存文件 新建一个文件,命名为b1.xlsx。如果已有同名文件,则删除原文件中所有内容。
$wenj1->save('b1.xlsx');
#3 单元格操作
#获取活动工作簿
$gzbu1 = $shili1->getActiveSheet('b1.xlsx');
#获取单元格
$dygeB2 = $gzbu1->getCell('c4');
#设置单元格的值
$valB2 = $dygeB2->setValue('东方朔20220313');
#4 保存文件
$wenj1->save('b1.xlsx');
?>