easy
使用easy-excel导出的excel中,给日期那一例设置单元格格式,发现需要双击后才能生效,翻了一些资料说easy-excel程序导出的日期值是文本值,所以需要双击让excel转化一下,这边查了easy-excel的g官方文档,发现导出部分给了一个设置行样式的列子 ,easy-excel是box/spout上封装的扩展,上面给的例子就是box/spout的样例
这样就发现了有可能解决问题的方法,然后找到了box/spout的官方文档,发现官方提供了一个针对日期的方法:StyleBuilder::setFormat(‘m/d/yy h:mm’),但是这边设置正常格式时间和时间戳后并没有生效,翻了半天文档也找不到这个方法的介绍,正当要放弃的时候 刚才查询的时候,发现了关于excel的日期值的一个说法,想着扩展需要的值并不一定是正常格式或者时间戳,所以查了下日期怎么转成excel的日期值
最后这边将日期转成excel的日期值,导出数据后发现excel设置单元格样式后不需要再双击,而且也能进行日期筛选,具体的程序如下:
<?php $date = date("Y/d/m");// date值就是转成excel所需要的日期值$data = [['date' => intval(25569 + strtotime(date('Y-m-d', strtotime($date . ' +1 day'))) / 86400),'num' => 10,],['date' => intval(25569 + strtotime(date('Y-m-d', strtotime($date . ' +1 day'))) / 86400),'num' => 20,]];Excel::export($data)->row(function (array $row) {// 设置日期样式$style = (new StyleBuilder())->setFormat('yyyy/mm/dd')->build();return WriterEntityFactory::createRowFromArray($row, $style);})->headings(['date' => '日期','num' => '数值',])->download("数值.xlsx");
注意:其实转成excel所需要的值其实就是个数值,如果当前excel中存在其它字段也是数值的话,也会被转化一下,可以在其值后面加个空格输出,但是双击后还是会变成日期值。
可以使用php原生方法导出excel,不会存在本文的问题
easy
使用easy-excel导出的excel中,给日期那一例设置单元格格式,发现需要双击后才能生效,翻了一些资料说easy-excel程序导出的日期值是文本值,所以需要双击让excel转化一下,这边查了easy-excel的g官方文档,发现导出部分给了一个设置行样式的列子 ,easy-excel是box/spout上封装的扩展,上面给的例子就是box/spout的样例
这样就发现了有可能解决问题的方法,然后找到了box/spout的官方文档,发现官方提供了一个针对日期的方法:StyleBuilder::setFormat(‘m/d/yy h:mm’),但是这边设置正常格式时间和时间戳后并没有生效,翻了半天文档也找不到这个方法的介绍,正当要放弃的时候 刚才查询的时候,发现了关于excel的日期值的一个说法,想着扩展需要的值并不一定是正常格式或者时间戳,所以查了下日期怎么转成excel的日期值
最后这边将日期转成excel的日期值,导出数据后发现excel设置单元格样式后不需要再双击,而且也能进行日期筛选,具体的程序如下:
<?php $date = date("Y/d/m");// date值就是转成excel所需要的日期值$data = [['date' => intval(25569 + strtotime(date('Y-m-d', strtotime($date . ' +1 day'))) / 86400),'num' => 10,],['date' => intval(25569 + strtotime(date('Y-m-d', strtotime($date . ' +1 day'))) / 86400),'num' => 20,]];Excel::export($data)->row(function (array $row) {// 设置日期样式$style = (new StyleBuilder())->setFormat('yyyy/mm/dd')->build();return WriterEntityFactory::createRowFromArray($row, $style);})->headings(['date' => '日期','num' => '数值',])->download("数值.xlsx");
注意:其实转成excel所需要的值其实就是个数值,如果当前excel中存在其它字段也是数值的话,也会被转化一下,可以在其值后面加个空格输出,但是双击后还是会变成日期值。
可以使用php原生方法导出excel,不会存在本文的问题