|
|
@@ -0,0 +1,101 @@
|
|
|
+## 安装部署
|
|
|
+
|
|
|
+ composer require oursdreams/export
|
|
|
+ php artisan export
|
|
|
+ php artisan export:start
|
|
|
+
|
|
|
+## 命令
|
|
|
+ //初始化与命令列表
|
|
|
+ php artisan export
|
|
|
+ //服务启动
|
|
|
+ php artisan export:start
|
|
|
+ //服务关闭
|
|
|
+ php artisan export:stop
|
|
|
+
|
|
|
+## 使用(仿EloquentModel)
|
|
|
+ //JSON
|
|
|
+ --快捷方式 参数依次为:表头(必须),表体(必须),文件名,是否开启内部换行(默认开启)
|
|
|
+ Export::make($row,$list,$fileName,$isWarpText);
|
|
|
+ --部分定制方式 此处示意最简化方式,中间可穿插函数操作
|
|
|
+ $serves = new Export();
|
|
|
+ $response = $serves->json($row,$list);
|
|
|
+ return $response->direct();
|
|
|
+ //JSON 同上最简化示意
|
|
|
+ $serves = new Export();
|
|
|
+ $serves->setOracleConnection($host,$port,$database,$username,$password);
|
|
|
+ //$sql->string类型原生SQL语句 $mapping->KEY,VAL形式数组用作表头与列名映射 $rule->定制一些规则
|
|
|
+ $response = $serves->sql($sql,$mapping,$rule);
|
|
|
+ return $response->direct();
|
|
|
+
|
|
|
+ //下方示例将UNITS表的name,created_at列数据整理导出 Excel表头将是:名称,创建时间 时间字段将被格式化为标准格式
|
|
|
+ $sql = "SELECT name,created_at FROM UNITS";
|
|
|
+ $mapping = ["name"=>"名称","created_at"=>"创建时间"];
|
|
|
+ $rule = ["created_at"=>"date"]
|
|
|
+ $serves->sql($sql,$mapping,$rule);
|
|
|
+
|
|
|
+ //注: JSON与SQL非静态行为均返回一个Response对象,且其提供direct函数来直接响应给浏览器文件流
|
|
|
+
|
|
|
+## 可用方法
|
|
|
+ --文本行为
|
|
|
+ setWarpTextFormat()
|
|
|
+ 将内部文本\r\n解析换行
|
|
|
+
|
|
|
+ setMergeFormat($mergeColumn,$mergeRow)
|
|
|
+ 该行为应用于JSON时手动指定
|
|
|
+ 指定合并单元格,$mergeColumn(数组)为指定Excel列,$mergeRow(键值对数组)为指定行
|
|
|
+ 例:$mergeColumn=["A","B"]; $mergeRow = [1=>3,4=>6];
|
|
|
+ 上述参数将A,B列的1至3行与4至6行 分别合并
|
|
|
+
|
|
|
+ setDatum($column)
|
|
|
+ 该行为应用于SQL时自动指定,应配合setMergeFormat一起使用
|
|
|
+ 根据提供基准列进行自动合并
|
|
|
+ 使用前确保您的基准列数据是唯一的且连续的
|
|
|
+
|
|
|
+ --连接行为
|
|
|
+ setMysqlConnection($host, $port, $database, $username, $password, $charset = "utf8mb4", $parsetime = "True")
|
|
|
+ 设置Mysql连接
|
|
|
+
|
|
|
+ setOracleConnection($host, $port, $database, $username, $password, $charset = "utf8mb4", $parsetime = "True")
|
|
|
+ 设置Oracle连接
|
|
|
+
|
|
|
+ --存储行为
|
|
|
+ setLogPath($path)
|
|
|
+ 开启本地存储日志,需要提供一个路径
|
|
|
+
|
|
|
+ setFilePath($path)
|
|
|
+ 将文件另存为指定路径下
|
|
|
+
|
|
|
+ --操作行为
|
|
|
+ setFileName($filename)
|
|
|
+ 设置文件名
|
|
|
+
|
|
|
+ setDateTimeColumn($column)
|
|
|
+ 格式化指定列为标准时间格式
|
|
|
+
|
|
|
+ setPercentColumn($column)
|
|
|
+ 格式化指定列为百分数值
|
|
|
+
|
|
|
+ --响应 只有在调用json与sql方法时才会返回一个响应对象
|
|
|
+ getGuzzleHttpResponse()
|
|
|
+ 获取一个GuzzleHttpResponse格式的响应对象
|
|
|
+
|
|
|
+ getStatus()
|
|
|
+ 获取状态码
|
|
|
+
|
|
|
+ getHeader()
|
|
|
+ 获取响应头
|
|
|
+
|
|
|
+ getBody()
|
|
|
+ 获取内容
|
|
|
+
|
|
|
+ getErrorMessage()
|
|
|
+ 获取错误信息(此方法实际已被废弃,出现错误会被立即抛出)
|
|
|
+
|
|
|
+ getMetadata();
|
|
|
+ 获取元数据(文件流)
|
|
|
+
|
|
|
+ getSize()
|
|
|
+ 获取内容大小(并非绝对文件大小,此处可以大致当为文件大小)
|
|
|
+
|
|
|
+ direct()
|
|
|
+ 直接返回响应文件流
|