## 安装部署 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() 直接返回响应文件流