Jelajahi Sumber

Update README.md

yzh 4 tahun lalu
induk
melakukan
30946aa8a9
1 mengubah file dengan 79 tambahan dan 78 penghapusan
  1. 79 78
      README.md

+ 79 - 78
README.md

@@ -29,7 +29,7 @@ pecl install xlswriter
 * export_demo.php excel导出demo
 * import_demo.php excel导入demo
 
-## 简单导出demo:
+>简单导出demo:
 ```
 $fileObj = new Pxlswrite(['path' => __DIR__]);
 $filePath = $fileObj
@@ -56,7 +56,7 @@ function generateData(){
 }
 ```
 
-## 使用WebSocket推送excel处理进度
+> 使用WebSocket推送excel处理进度
 
 实现过程:前端与websocket服务器先建立连接,连接建立好之后服务端会发送一条消息 {'status' => 'onopen', 'fd' => $request->fd},
 前端将fd保存起来,在请求处理excel接口时将fd参数传给后台,后台在推送进度消息时将fd参数封装到消息体里在发送给websocket服务器
@@ -65,11 +65,11 @@ function generateData(){
 * 前端首次连接时的消息体:['status' => 'onopen', 'fd' => 1]
 * 处理过程中的消息体:['status' => 'processing', 'process' => 100, 'fd'=>1]
 
-### 开启websocket 服务端 
+>> 1.开启websocket 服务端 
 ```
 php ./src/WebSocket/WebSocketServer.php
 ```
-### web前端 
+>> 2.web前端 
 ```
 var layer = layui.layer, $ = layui.jquery, upload = layui.upload;
 var loading, fileLoading;
@@ -122,7 +122,7 @@ websocket.onerror = function (evt, e) {
         }, 'json');
     }
 ```
-### php 后端调用 WebSocketClient 推送消息
+>> 3.php 后端调用 WebSocketClient 推送消息
 ```
 $fileObj = new Pxlswrite(['path' => __DIR__]);
 //实例化WebSocketClient--需要推送进度才实例化
@@ -132,8 +132,8 @@ $filePath = $fileObj->fileName('123.xlsx','sheet1')
     ->setDataByGenerator('generateData', [], [], $pushHandle)//设置数据 回调生成器方法获取数据,$pushHandle 用于推送,可选参数
     ->output();//输出excel文件到磁盘
 ```
-## 样式设置
-支持的样式如下:
+> 样式设置  
+>> 支持的样式如下:
 ```
 $style = [
     'align' => [Pxlswrite::FORMAT_ALIGN_CENTER, Pxlswrite::FORMAT_ALIGN_VERTICAL_CENTER],//对齐 [x,y]
@@ -149,7 +149,7 @@ $style = [
     'italic' => true,//斜体
 ];
 ```
-样式相关常量
+>> 样式相关常量
 ```
     const FORMAT_ALIGN_LEFT = Format::FORMAT_ALIGN_LEFT;                                    // 水平左对齐
     const FORMAT_ALIGN_CENTER = Format::FORMAT_ALIGN_CENTER;                                // 水平剧中对齐
@@ -200,7 +200,7 @@ $style = [
     const COLOR_WHITE = Format::COLOR_WHITE;
     const COLOR_YELLOW = Format::COLOR_YELLOW;
 ```
-样式设置的相关方法
+>> 样式设置的相关方法
 ```
 /**
  * 行单元格样式
@@ -237,7 +237,7 @@ defaultFormat($formatHandler)
  */
 mergeCells($scope, $data, $formatHandler = null)
 ```
-示例
+>> 示例
 ```
 $fileObj = new Pxlswrite(['path' => __DIR__]);
 $filePath = $fileObj->fileName('123.xlsx','sheet1')
@@ -248,8 +248,66 @@ $filePath = $fileObj->fileName('123.xlsx','sheet1')
     ->output();//输出excel文件到磁盘
 ```
 注意:设置行与行/列与列样式 交集范围会覆盖;行样式优先于列样式;全局默认样式不会被覆盖,谨慎使用
+> 合并单元格
+>> 函数原型
+```
+/**
+ * 合并单元格
+ * @param string $scope   单元格范围
+ * @param string $data    data
+ * @param resource|array $formatHandler  合并单元格的样式
+ * @return $this
+ * @throws DataFormatException
+ */
+mergeCells($scope, $data, $formatHandler = null)
+```
+>> 示例
+```
+$fileObj->fileName("test.xlsx")
+  ->mergeCells('A1:C1', 'Merge cells')
+  ->output();
+```
+> 定义字段&格式化字段
+>> 函数原型
+```
+/**
+ * 设置字段&表格头
+ * @param array $field 字段定义数组 数据格式如下
+ * [
+ *  'name' => ['name' => '姓名','callback'=>'functionName'],
+ *  'age' => ['name' => '年龄'],
+ * ]
+ * @return $this
+ * @throws DataFormatException
+ */
+function field($field)
+```
+>> 示例
+```
+//定义字段
+$field = [
+    'name' => ['name' => '姓名'],
+    'year' => ['name' => '出生年份'],
+    'age' => ['name' => '年龄','callback'=>'ageFormat']//callback 回调方法处理格式化值 可以是函数/对象方法
+];
+$fileObj = new Pxlswrite(['path' => __DIR__ ]);
+$fileObj->fileName('1234.xlsx')
+    ->field($field)//设置字段&表格头
+    ->data([
+        ['Rent', 1999,0],
+        ['Gas',  1996,0],
+        ['Food', 1998,0],
+        ['Gym',  1995,0],
+    ])
+    ->output();//输出excel文件到磁盘
+//格式化字段值
+function ageFormat($v, $values)
+{
+    return date(Y) - $values['year'];
+}
+```
 
-## 动态合并单元格
+> 动态合并单元格
 * 通用合并,根据数据的值比较 自动进行 行合并
 
 优点:数据层不需要怎么处理,将数据库查询出来的二维数组直接传入即可。  
@@ -278,8 +336,8 @@ $data = [
 ];
 ```
 字段数量,名称没有限制,只支持一个item(也可以叫其他名字)二维数组,item数组里面的个数没有限制。
-### 通用合并demo
-函数原型
+>> 通用合并demo
+>>> 函数原型
 ```
  /**
  * 通过生成器逐行向表格插入数据,
@@ -296,7 +354,7 @@ $data = [
  */
 setDataByGenerator($_generator, array $_mergeColumn = [], array $_mergeColumnStyle = [], WebSocketClient $_pushHandle = null, $_index = 1
 ```
-示例
+>>> 示例
 ```
 //定义字段
 $field = [
@@ -320,8 +378,8 @@ function generateData(){
 }
 ```
 
-### 订单类型合并demo
-函数原型
+>> 订单类型合并demo
+>>> 函数原型
 ```
 /**
  * 设置订单数据 根据数据可以合并指定的字段,需要遵循以下数据格式
@@ -351,7 +409,7 @@ function generateData(){
  */
 setOrderData($_generator, array $_mergeColumn = [], array $_mergeColumnStyle = [], WebSocketClient $_pushHandle = null, $_index = 1)
 ``` 
-示例
+>>> 示例
 ```
 //定义字段
 $orderField =  [
@@ -400,66 +458,9 @@ function generateOrderData(){
     }
 }
 ```
-## 合并单元格
-函数原型
-```
-/**
- * 合并单元格
- * @param string $scope   单元格范围
- * @param string $data    data
- * @param resource|array $formatHandler  合并单元格的样式
- * @return $this
- * @throws DataFormatException
- */
-mergeCells($scope, $data, $formatHandler = null)
-```
-示例
-```
-$fileObj->fileName("test.xlsx")
-  ->mergeCells('A1:C1', 'Merge cells')
-  ->output();
-```
-## 定义字段&格式化字段
-函数原型
-```
-/**
- * 设置字段&表格头
- * @param array $field 字段定义数组 数据格式如下
- * [
- *  'name' => ['name' => '姓名','callback'=>'functionName'],
- *  'age' => ['name' => '年龄'],
- * ]
- * @return $this
- * @throws DataFormatException
- */
-function field($field)
-```
-示例
-```
-//定义字段
-$field = [
-    'name' => ['name' => '姓名'],
-    'year' => ['name' => '出生年份'],
-    'age' => ['name' => '年龄','callback'=>'ageFormat']//callback 回调方法处理格式化值 可以是函数/对象方法
-];
-$fileObj = new Pxlswrite(['path' => __DIR__ ]);
-$fileObj->fileName('1234.xlsx')
-    ->field($field)//设置字段&表格头
-    ->data([
-        ['Rent', 1999,0],
-        ['Gas',  1996,0],
-        ['Food', 1998,0],
-        ['Gym',  1995,0],
-    ])
-    ->output();//输出excel文件到磁盘
-//格式化字段值
-function ageFormat($v, $values)
-{
-    return date(Y) - $values['year'];
-}
-```
-## 游标读取excel 分段写入数据库
-函数原型
+
+> 游标读取excel 分段写入数据库
+>> 函数原型
 ```
 /**
  * 游标读取excel,分段插入数据库
@@ -469,7 +470,7 @@ function ageFormat($v, $values)
  */
 importDataByCursor($_func, WebSocketClient $_pushHandle = null, array $_dataType = [])
 ```
-示例
+>>示例
 ```
 $fileObj = new Pxlswrite(['path' => dirname($_GET['file'])]);
 $fileInfo = explode('/', $_GET['file']);