使用 spout 写入 excel 文件时如何格式化日期
How to format dates when writing excel files with spout
我需要生成一些相当大的 excel 文件,并且我正在考虑从 PHPExcel 切换到 spout,因为它似乎更有效率。我已经能够找到我需要的所有功能,除了一个:如何将单元格格式化为日期。似乎认为默认情况下一切都是字符串。对于数字,我发现使用 intval()
或 floatval()
会强制它将该值视为一个数字,但是日期是否有类似的东西?
到目前为止我发现的唯一解决方法是使用 (strtotime($datestr)/86400)+25569.4167
将日期转换为数字,但是您必须在导出文件后手动将该列格式化为日期,但用户不会接受那个。
目前无法将单元格格式化为日期。您始终可以传递日期字符串(如“03/03/2017”); Excel 通常很擅长识别这是一个约会对象。
您的解决方法确实需要手动步骤将列配置为日期,因此我不建议这样做。
最后,我在 github https://github.com/box/spout/pull/209 上找到了这个提交,他们在其中添加了格式化日期的选项,以及单独格式化单元格的选项。我知道这不是官方发布,所以它是 "use at your own risk",但对我来说这正是我所需要的,所以我想添加 link 以防其他人处于同样的情况.警告,虽然它确实破坏了为单元格和行设置背景颜色,但在我的情况下这不是问题。
我需要生成一些相当大的 excel 文件,并且我正在考虑从 PHPExcel 切换到 spout,因为它似乎更有效率。我已经能够找到我需要的所有功能,除了一个:如何将单元格格式化为日期。似乎认为默认情况下一切都是字符串。对于数字,我发现使用 intval()
或 floatval()
会强制它将该值视为一个数字,但是日期是否有类似的东西?
到目前为止我发现的唯一解决方法是使用 (strtotime($datestr)/86400)+25569.4167
将日期转换为数字,但是您必须在导出文件后手动将该列格式化为日期,但用户不会接受那个。
目前无法将单元格格式化为日期。您始终可以传递日期字符串(如“03/03/2017”); Excel 通常很擅长识别这是一个约会对象。
您的解决方法确实需要手动步骤将列配置为日期,因此我不建议这样做。
最后,我在 github https://github.com/box/spout/pull/209 上找到了这个提交,他们在其中添加了格式化日期的选项,以及单独格式化单元格的选项。我知道这不是官方发布,所以它是 "use at your own risk",但对我来说这正是我所需要的,所以我想添加 link 以防其他人处于同样的情况.警告,虽然它确实破坏了为单元格和行设置背景颜色,但在我的情况下这不是问题。