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