Export使用.md 3.6 KB

安装部署

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