phpspreadsheet初次使⽤指引1.安装:
按官⽹compor进⾏安装:
compor require phpoffice/phpspreadsheet
我是comper到laravel的⽬录下
在cmd中进⼊laravel的⽬录地址,键⼊上⾯的指令 它会默认安装在vendor⽬录下
安装后地址:verdor\phpoffice\phpspreadsheet
蒜蓉酱的做法
2.看⽰例:
按照官⽹⽰例:
<?php
require 'vendor/autoload.php';
u PhpOffice\PhpSpreadsheet\Spreadsheet;
u PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->tCellValue('A1', 'Hello World !');
$writer = new Xlsx($spreadsheet);
$writer->save('hello world.xlsx');营盘路湘江隧道
说⼀下使⽤思路:
1. 先 new spreadsheet( )类
2. ⽤spreadsheet类⾥⾯的⽅法,获得要读的sheet页。并返回⼀个叫worksheet的类
3. 通过worksheet()⾥⾯的⽅法去设置表格的内容
4. 最后保存。eg:xlsx格式 new xlsx()的类 然后执⾏save(‘filename’)
3.个⼈解读:
命名空间:引⼊spreadsheet类和writer\xlsx类的地址
3.1 new SpreadSheet类【个⼈理解(可能有出⼊)是:SpreadSheet 类是操作sheet页的】
⽐如说 :
⼀个excel可能有多个页⾯(sheet1,sheet2,sheet3),要使⽤哪个页⾯可以使⽤
getSheet(index)--通过索引获取
getsheetByName(name)--通过名字获取
getActiveSheet() --直接获取当前激活的sheet
请注意它的这些函数返回值(具体返回数据类型见官⽅⽂档)
int getActiveSheetIndex()
Get active sheet index.
Worksheet tActiveSheetIndex(int $pIndex)
Set active sheet index.
上⾯这⾥: ⼀个int型 ⼀个worksheet型
int型就是整型,不多说
worksheet按我的理解是⼀个类
Worksheet
class Worksheet implements IComparable (View source)
这个类返回后就可以链式操作它的⽅法了
⽬录结构:phpoffice\phpspreadsheet\worksheet\worksheet
3.2 worksheet类 个⼈理解(可能理解不透彻)
【 操作单元格的】--例如读写表格数据填写志愿
你可以使⽤
tCellValue('A1', 'Hello World !'); ---设置A1单元格的数据为helloworld
tCellValueByColumnAndRow(1,1,"姓名") ---设置A1单元格数据为“姓名”,参数1:列编号;参数2:⾏编号;参数3:值 (string $pCellCoordinate) --通过坐标获取样式,它返回的数据是style类,这样就可以通过style类去操作这个单元格的样式
同样的:⽅法返回的如果是某个类,你就可以继续链式操作这个类的⽅法
一路风雨一路歌3.3 保存数据
可以使⽤的格式很多如pdf,csv,xls,xlsx
你需要写对应的命名空间
例如:u PhpOffice\PhpSpreadsheet\Writer\Xlsx;
就是保存xlsx格式
使⽤时new xlsx()类
然后使⽤save()⽅法
save(string $pFilename)
Save PhpSpreadsheet to file.
4.完结:
最终代码如下:
namespace App\Http\Controllers;
u Illuminate\Http\Request;
u PhpOffice\PhpSpreadsheet\Spreadsheet;
u PhpOffice\PhpSpreadsheet\Writer\Xlsx;
u PhpOffice\PhpSpreadsheet\Cell\Cell;
class testController extends Controller
{
public function excelwrite(){
$data = array(
array('张三','1(1)班'),
array('李四','1(2)班'),
半怎么组词
array('王五','1(3)班')
);房屋租赁合同范本打印
$spreadsheet = new Spreadsheet();
$worksheet = $spreadsheet ->getActiveSheet();
$worksheet ->tCellValueByColumnAndRow(1,1,"姓名");//设置第1⾏第1列为姓名
$worksheet ->tCellValueByColumnAndRow(2,1,"班级");//设置第1⾏第2列为班级
foreach($data as $key =>$val){
foreach($val as $k=>$v){
$worksheet->tCellValueByColumnAndRow($k+1,$key+2,$v);//循环输⼊具体的数据
}
}
$worksheet->tTitle('test1');//设置sheet页⾯名称
$writen = new Xlsx($spreadsheet);
$writen->save('test1.xlsx');//保存为xlsx格式⽂件
/**
*下载excel
**/
安置帮教工作总结/
/header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); //header('Content-Disposition: attachment;filename="信息表.xlsx"');
//header('Cache-Control: max-age=0');
//$write->save('php://output');
}
}
澳桔
表格显⽰:
test1.xlsx表
姓名班级
张三1(1)班
李四1(2)班
王五1(3)班
* excel读操作
**/
public function excelRead(){
$reader = new Xlsx();
$spreadsheet = $reader->load('test1.xlsx');
$worksheet = $spreadsheet->getActiveSheet();
$arr = $worksheet->getHighestRowAndColumn();//
$column = $worksheet ->getHighestColumn();//获取最⾼列,它这⾥是字母,⽐如F $row = $worksheet ->getHighestRow();//获取最后⾏
$cellName = Coordinate::columnIndexFromString($column);//将列的字母转换成数字 echo $cellName;
echo $row;
dump($arr);
/**
* 剩下使⽤循环读取
* $value = $worksheet->getCellByColumnAndRow($col, $row)->getValue();
* 后续有时间再补充完整
*/
}