我可以使用 Excel::Writer::XLSX 包从 DBI 查询的结果成功创建 xlsx。
唯一的麻烦是日期和时间单元格,当在 Excel 2010 中打开时,需要刷新,即F2 <enter>
正确显示。
显示的示例:2012-12-02 17:48:33.000
打开电子表格时
刷新 02/12/2012 17:49
后:所需格式F2 <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 );
}