phpspreadsheet中文手册_php file_put_contents

phpspreadsheet中文手册_php file_put_contents今天遇到一个问题,涉及php与excel之间数据转换。之前一直用PHPExcel,他们的开发组不更新了。但是找到了PhpSpreadsheet。一、介绍用纯php编写的库,它提供了一组类,允许您读取和写入不同的电子表格文件格式支持格式环境要求php5.6及以上php_zip支持并启用php_xml支持并启用php_gd2支持并启用安装>composerrequi…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

今天遇到一个问题,涉及 php 与 excel 之间数据转换。之前一直用 PHPExcel,他们的开发组不更新了。但是找到了 PhpSpreadsheet。

一、介绍

用纯 php 编写的库,它提供了一组类,允许您读取和写入不同的电子表格文件格式

支持格式

45fd52bd067e5cf93fab1f78019f8bbf.png

环境要求

php 5.6 及以上

php_zip 支持并启用

php_xml 支持并启用

php_gd2 支持并启用

安装> composer require phpoffice/phpspreadsheet

hello world<?php

require ‘vendor/autoload.php’;

use PhpOffice\PhpSpreadsheet\Spreadsheet;

use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$spreadsheet = new Spreadsheet();

$sheet = $spreadsheet->getActiveSheet();

$sheet->setCellValue(‘A1’, ‘Hello World !’);

$writer = new Xlsx($spreadsheet);

$writer->save(‘hello world.xlsx’);

实例

包中带了实例代码,位置 vendor/phpoffice/phpspreadsheet/samples 下> php -S localhost:8000 -t vendor/phpoffice/phpspreadsheet/samples

二、读取

无需关心文件类型加载,用到了 IOFactory// 文件路径

$inputFileName = ‘./sampleData/example1.xls’;

$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName);

注意:

这不是加载文件的最有效方法, 并且它缺乏在将文件实际读入 Spreadsheet 对象之前以任何方式配置加载器的灵活性。

知道文件类型,可以自己决定使用哪种读取器// 文件路径

$inputFileName = ‘./sampleData/example1.xls’;

/** 创建读取器 **/

$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xls();

// $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();

// $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xml();

// $reader = new \PhpOffice\PhpSpreadsheet\Reader\Ods();

// $reader = new \PhpOffice\PhpSpreadsheet\Reader\Slk();

// $reader = new \PhpOffice\PhpSpreadsheet\Reader\Gnumeric();

// $reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();

$spreadsheet = $reader->load($inputFileName);

当只要读取数据,不要格式时,实例读取器中 readDataOnly 属性,如下$inputFileType = ‘Xls’;

$inputFileName = ‘./sampleData/example1.xls’;

$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);

/** 只要数据 **/

$reader->setReadDataOnly(true);

$spreadsheet = $reader->load($inputFileName);

注意:csv 读取器没有这个属性

多个文件合并为一个对象$inputFileType = ‘Csv’;

$inputFileNames = [

‘./sampleData/example1.csv’,

‘./sampleData/example2.csv’

‘./sampleData/example3.csv’

];

$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);

/** 拿到第一个 **/

$inputFileName = array_shift($inputFileNames);

$spreadsheet = $reader->load($inputFileName);

$spreadsheet->getActiveSheet()

->setTitle(pathinfo($inputFileName,PATHINFO_BASENAME));

/** 循环读取 **/

foreach($inputFileNames as $sheet => $inputFileName) {

/** 重新设置工作表索引 **/

$reader->setSheetIndex($sheet+1);

/** 把文件当做一个新的工作表载入 **/

$reader->loadIntoExisting($inputFileName,$spreadsheet);

/** 设置工作表标题 **/

$spreadsheet->getActiveSheet()

->setTitle(pathinfo($inputFileName,PATHINFO_BASENAME));

}

注意:对多个工作表使用相同的工作表索引不会将文件附加到同一工作表中,而是覆盖先前加载的结果。您无法将多个 CSV 文件加载到同一工作表中。

转为数组

文件最后会载入到一个对象中,我称为 spreadsheet 工作表对象,这个对象中存放着所以工作表集合的信息(数据信息和格式信息、工作表信息等)$spreadsheet = PhpOffice\PhpSpreadsheet\IOFactory::load(“new.xls”);

$data = $spreadsheet

->getSheet(0) // 指定第一个工作表为当前

->toArray(); // 转为数组

// 或者得到全部工作表的数据数组

$cells=array();

// 工作表对象有迭代器实现

foreach ( $spreadsheet->getWorksheetIterator() as $data ) {

$cells = $data->toArray();

}

结语

PhpSpreadsheet 是非常不错的 php 的电子表格处理工具类,后续有时间在补上写入和导出。

更多PHP相关知识,请访问PHP中文网!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192512.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ideaIU-2021.9 激活码_最新在线免费激活

    (ideaIU-2021.9 激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~83PVI25FMO-eyJsaWNlbnNlSWQiOi…

    2022年3月27日
    86
  • 配置设置文件怎么生成的_centos6.8网络配置

    配置设置文件怎么生成的_centos6.8网络配置前言每个测试用例都应该有config部分,可以配置用例级别。比如name、base_url、variables、verify、export等等案例演示fromhttprunnerimport

    2022年7月28日
    1
  • pytest报错_eclipse提交代码到git

    pytest报错_eclipse提交代码到git前言我们每天写完自动化用例后都会提交到git仓库,随着用例的增多,为了保证仓库代码的干净,当有用例新增的时候,我们希望只运行新增的未提交git仓库的用例。pytest-picked插件可以

    2022年7月29日
    3
  • anaconda与pycharm配合使用_python环境搭建

    anaconda与pycharm配合使用_python环境搭建前天下了一个GitHub开源项目,但是项目的运行是可以用终端命令行运行,以前没用过,在网上也没找到教程说明。下面我来说个简单教程。这个是搭配anaconda的配置环境使用的。首先点pycharm的terminal,就会进入终端命令行,进去了一般是进入了cmd命令行界面,这个时候的环境是你系统自带的python环境,想要配合使用anaconda还要进一步配置点windows找到上面那个嘿嘿的Anacondaprompt,右键进入文件夹,再右键点击属性,进入下面的界面将包括cm

    2022年8月28日
    2
  • SQL Server——数据库创建及修改[通俗易懂]

    SQL Server——数据库创建及修改[通俗易懂]文章目录一、SQL Server数据库的相关概念1、逻辑数据库2、物理数据库二、SQL Server数据库的基本操作1、使用SQL Server Management Studio (创建/修改/删除)数据库2、使用SQL语句(创建/修改/删除)数据库【数据库文件的类型】【主要】【次要】【事务日志】文件组1.主文件组(PRIMARY)2.用户定义文件组【文件组特性】一、SQL Server数据库…

    2022年8月18日
    4
  • CSGO国内开箱网站大全incsgo skinsdog狗网 coolkaixiang 88steam「建议收藏」

    CSGO国内开箱网站大全incsgo skinsdog狗网 coolkaixiang 88steam「建议收藏」CSGO国内开箱网站大全收录incsgo官网,skinsdog狗网官网,coolkaixiang官网,88steam官网,Box818官网,Piggycase官网,Yskins官网incsgo国内CSGO饰品皮肤开箱网站官方链接:www.incsgo.gg注册登录自动免费获得$1.00美金取回状态:直接取回**优惠码:**csgogo(充值使用csgogo可增加5%充值金额)skinsdog狗网CSGO饰品皮肤开箱网站可直接取回官方链接:skinsdog.c.

    2022年10月6日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号