【发布时间】:2012-12-03 19:21:24
【问题描述】:
我可以使用 Excel::Writer::XLSX 包从 DBI 查询的结果成功创建 xlsx。
唯一的问题是日期和时间单元格,在 Excel 2010 中打开时,需要刷新,即 F2 <enter> 才能正常显示。
显示的示例:打开电子表格时的2012-12-02 17:48:33.000
刷新后:02/12/2012 17:49F2 <enter> 之后的所需格式
我将不胜感激任何关于可能导致此问题的提示/指导以及是否可以在我的 Perl 脚本中解决此问题?
非常感谢...
PS 自动计算已启用,Win 7 上的 StrawberryPerl 5.16
更新:为了完整起见,并且可能对其他人有所帮助:我使用以下构造从查询中写入记录,可能是纯字符串或日期时间。
如果一个 muff 是捕获日期的正则表达式,或者是 sprintf 以将其放入 write_excel_date 方法所需的正确格式字符串中,则会将纯字符串写入单元格。那是我的问题。
if ( $item =~ qr[(\d{4})-(\d{2})-(\d{2})\s(\d{2}):(\d{2}):(\d{2})\.000] ) {
my $date = sprintf "%4d-%02d-%02dT%02d:%02d:%02d", $1, $2, $3, $4, $5, $6;
$worksheet->write_date_time( $row, $col++, $date, $date_format);
}
else {
$worksheet->write( $row, $col++, $item );
}
【问题讨论】:
-
您使用的是
$worksheet->write_date_time()和适当的格式吗? -
是的。正如下面约翰的帖子所评论的那样,我的脚本无法捕获日期和时间“令牌”,因此只是将其打印为字符串。奇怪,因为它看起来很简单......要再努力一点......谢谢