详解phpspreadsheet

发布时间:2023-05-19

一、简介

Phpspreadsheet是一个用于处理电子表格文件的PHP库,允许您读取、写入和创建电子表格文件,如XLS、XLSX、CSV和ODS文件。Phpspreadsheet是PHPExcel的改进版本,是目前最流行的电子表格处理库之一。 Phpspreadsheet可以集成在各种应用程序中,比如:CRM、ERP系统,以及各种数据迁移工具。 Phpspreadsheet很容易上手,并且有完善的文档和示例,能够处理各种各样的电子表格文件,从而满足不同的需求。

二、表格处理

表格处理是Phpspreadsheet最常用的功能之一。下面介绍一些Phpspreadsheet处理表格时的一些技巧。

1、创建电子表格

// 新建一个电子表格对象
use PhpOffice\PhpSpreadsheet\Spreadsheet;
$newSpreadsheet = new Spreadsheet();
// 添加一张工作表
$newSheet = $newSpreadsheet->getActiveSheet();
// 设置该工作表的名称
$newSheet->setTitle('My First Worksheet');

2、读取电子表格数据

// 读取电子表格文件
use PhpOffice\PhpSpreadsheet\IOFactory;
$excelFile = 'path/to/your/file.xlsx';
$spreadsheet = IOFactory::load($excelFile);
// 获取活动工作表
$worksheet = $spreadsheet->getActiveSheet();
// 获取工作表的总行数和总列数
$highestRow = $worksheet->getHighestRow();
$highestColumn = $worksheet->getHighestColumn();

3、写入电子表格数据

// 写入电子表格文件
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
$newSpreadsheet = new Spreadsheet();
// 添加一张工作表
$newSheet = $newSpreadsheet->getActiveSheet();
// 设置工作表名称
$newSheet->setTitle('My First Worksheet');
// 在工作表中写入数据
$newSheet->setCellValue('A1', 'Hello World!');
$newSheet->setCellValue('B1', 'Bonjour le monde !');
// 保存电子表格文件
$writer = IOFactory::createWriter($newSpreadsheet, 'Xlsx');
$writer->save('path/to/your/file.xlsx');

三、电子表格格式支持

Phpspreadsheet支持多种电子表格格式,包括XLS、XLSX、CSV和ODS文件。当使用Phpspreadsheet处理电子表格时,可以使用不同的类来处理不同的文件格式,例如使用PhpOffice\PhpSpreadsheet\Reader\Xlsx类来处理XLSX格式的文件。下面是一些常用的电子表格格式操作。

1、格式化单元格

// 添加单元格样式
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\Font;
$styleArray = [
    'font' => [
        'bold' => true,
        'color' => [
            'rgb' => '333333',
        ],
        'size' => 12,
    ],
    'alignment' => [
        'horizontal' => Alignment::HORIZONTAL_CENTER,
        'vertical' => Alignment::VERTICAL_CENTER,
    ],
    'borders' => [
        'outline' => [
            'borderStyle' => Border::BORDER_THIN,
            'color' => [
                'rgb' => '333333',
            ],
        ],
    ],
    'fill' => [
        'fillType' => Fill::FILL_SOLID,
        'startColor' => [
            'rgb' => 'FDFEFF',
        ],
    ],
];
$sheet->getStyle('A1:J1')->applyFromArray($styleArray);

2、删除行和列

// 删除行
$worksheet->removeRow(2, 10);
// 删除列
$worksheet->removeColumn('C', 4);
// 保存电子表格文件
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('path/to/your/file.xlsx');

3、设置图片

// 添加图片
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing;
$drawing = new Drawing();
$drawing->setName('Logo');
$drawing->setDescription('Logo');
$drawing->setPath('./logo.jpg');
$drawing->setCoordinates('B2');
$drawing->setWorksheet($spreadsheet->getActiveSheet());

四、总结

Phpspreadsheet是一个功能强大的库,可以轻松处理电子表格文件。本文向您介绍了一些使用Phpspreadsheet的技巧和方式,以及如何使用Phpspreadsheet处理电子表格的一些常见任务。使用Phpspreadsheet处理电子表格,可以使您的操作更加轻松、方便、高效。