Download the PHP package yzh0325/xlswrite without Composer

On this page you can find all versions of the php package yzh0325/xlswrite. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package xlswrite

xlswriter+yield+websocket

这是一个基于xlswriter+yield高性能操作excel/csv的库,集成了websocket用于excel操作时的进度推送。
本类继承自xlswriter扩展, 重新封装了一些常用的方法,同时保持基类的用法。
xlswriter文档https://xlswriter-docs.viest.me/
源码:https://github.com/yzh0325/xlswrite
为何要使用xlswriter操作excel?
由于内存原因,PHPExcel数据量相对较大的情况下无法正常工作,虽然可以通过修改memory_limit配置来解决内存问题,但完成工作的时间可能会更长;xlswriter是一个 PHP C 扩展,可以更高效的读写excel.
yield的作用是什么呢?
当需要导出大量数据的时候,性能瓶颈会在数据库查询和内存上面,这时候应该分段获取数据,将获取到的数据放入yield生成器,遍历生成器获取数据循环写入excel,这样就可以避免从数据库读取大量数据一次性加载到内存而消耗了大量的内存。使用yield分段获取大量数据,可以大大的节省内存,提高服务器性能。

目录

功能特性

Installing

安装xlswriter扩展

WebSocket

excel导出

可根据创建的文件名后缀自动导出xlsx文件和csv文件

导出excel快速上手

excel导出的两种模式

导出-固定内存模式

最大内存使用量 = 最大一行的数据占用量 当开启内存优化模式时,单元格将根据行落地磁盘,如果当前操作的行已落盘则无法进行任何修改(比如无法进行合并单元格操作,样式设置等),内存中只保留最新一行数据,所以内存优化模式最大内存占用等于数据最多一行的内存.

导出-普通模式

导出速度更快,但内存开销比固定内存模式更大

下载excel文件

可以设置文件下载完成后是否自动删除原文件,download方法参数二默认值为true自动删除原文件。

函数原型

示例

设置字段&表格头

通过field()可以进行字段的定义&表格头的设置,使用header()定义的表格头会覆盖field()定义的表格头;
使用field()定义字段后在使用setGeneralData()和setOrderData()时会进行字段的过滤,设置了回调的方法还会调用字段的回调方法,进行字段的格式化处理等操作。但并不推荐设置字段的回调,因为效率不高,可以在传入数据的时候就处理好字段的值推荐使field()设置表格头,设置过field才支持动态单元格行合并。

函数原型

示例

自适应单元格列宽

函数原型

示例

样式设置

支持的样式如下:

样式相关常量

样式设置的相关方法

示例

注意:设置行与行/列与列样式 交集范围会覆盖;行样式优先于列样式;全局默认样式不会被覆盖,谨慎使用

批量数据插入

通过回调生成器方法,逐行插入数据(一般通用数据)

通过回调生成器方法,逐行插入数据(订单类型数据)

逐行逐列插入数据,按单元格循环插入(可以区分文本插入和超链接插入,这种方式插入的数据,后面无法通过批量设置样式)

批量插入数据(setGeneralData和setOrderData都是基于它来实现的)

单元格

插入文字

函数原型

示例

数字样式示例
更多样式请参考 Excel 微软文档

插入链接

函数原型

示例

插入超链接(insertText+insertUrl)

示例 注意:insertUrl和insertText的顺序不能写反了 insertText会覆盖insertUrl写入的文本内容,同时会保持insertUrl的超链接

合并单元格

函数原型

示例

更多单元格操作见xlswriter

动态合并单元格

优点:数据层不需要怎么处理,将数据库查询出来的二维数组直接传入即可。
缺点:无法满足像订单一样的 存在多个订单时间值是一样的,合并就会存在问题。

优点:根据传入的数据格式进行合并,合并更加精准不会存在问题。
缺点:对数据格式有要求,在数据层需要处理成指定的数据格式,数据格式如下:

字段数量,名称没有限制,只支持一个item(也可以叫其他名字)二维数组,item数组里面的个数没有限制。 当数据字段的值能明显区分时推荐使用通用合并,当数据字段的值不能明显区分时(如:时间字段)推荐订单类型的合并

通用合并demo

函数原型

示例

订单类型合并demo

函数原型

示例

使用WebSocket推送excel处理进度

实现过程:前端与websocket服务器先建立连接,连接建立好之后服务端会发送一条消息 {'status' => 'onopen', 'fd' => $request->fd}, 前端将fd保存起来,在请求处理excel接口时将fd参数传给后台,后台在推送进度消息时将fd参数封装到消息体里在发送给websocket服务器 ,websocket服务器根据fd参数在推送消息给指定的前端,这就完成了web前端、websocket服务器、应用后端之间的数据交互。

前端可根据status状态进行相应的处理,status = onopen 时保存fd,status = processing 时进行进度条渲染。

配置: WebSocket服务端默认使用9502端口,可自行修改./src/WebSocket/WebsocketServer的 CONST PORT = 9502

WebSocketClient使用:

处理excel时自动发送消息(在推送信息失败时不会影响、终止代码的执行,会生成相应的日志文件,日志文件存放于实例化Pxlswrite所设置的路径下的log目录,日志文件按日期存放)

示例

1.开启websocket 服务端

2.web前端实现demo

3.后端处理excel 并调用 WebSocketClient 推送消息

excel读取

可读取xlsx文件和csv文件

游标读取excel分段写入数据库

函数原型

示例

更多使用方法见 xlswrite

examples

见 examples/


All versions of xlswrite with dependencies

PHP Build Version
Package Version
Requires php Version ^7.2
textalk/websocket Version ^1.3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package yzh0325/xlswrite contains the following files

Loading the files please wait ....