Excel中::作家:: XLSX写格式化日期

问题描述 投票:3回答:1

我有使用Spreadsheet::XLSX模块中的数据,其中包括未格式化的日期以读剧本。当我打开电子表格在桌面上它只表示在mm/dd/yyyy格式的日期。我完成阅读后我写出来使用Excel::Writer::XLSX模块的电子表格。我基本上将序列中的下一个日期。一切工作正常,直到我再由我创建电子表格读入。它只读取为格式化日期,不管我是否使用了上述两种阅读它们:

$cell->{Val}
$cell->value()

这是我用写出来的日期写格式。我好清楚,我写了使用这种格式格式化值的日期。如果我不使用num_format然后日期是在ddddd格式,当我打开电子表格。

$workbook->add_format(bold => 1, align => 'center', num_format => 'mm/dd/yyyy');

我如何得到它是一致的读取电子表格和也观看日期为mm/dd/yyyy当我打开它的时候?

excel perl
1个回答
0
投票

CELL FORMATTING部分报价:

单元格的格式通过格式对象定义。格式对象是通过调用工作簿add_format()方法如下创建:

my $format2 = $workbook->add_format( %props );    # Set at creation

格式对象认为可应用于一单元格,行或列中的所有格式属性。设置这些属性的过程将在下一部分中讨论。

write_date_time()节另一句名言:

一个日期应该始终有一个$format,否则会出现一个号码,请参阅“日期和时间EXCEL”和“单元格格式”。

根据这个代码应该是:

my $date_format = $workbook->add_format(
    bold       => 1,
    align      => 'center',
    num_format => 'mm/dd/yyyy'
);

# apply format to a specific cell
# $string should be in ISO-8601 format as UTC, e.g. yyyy-mm-ddThh:mm:ss.sssZ
$worksheet->write_date_time($row, $column, $string, $date_format);

我对扯皮时间戳选择的武器将是Date::Manip分布。

© www.soinside.com 2019 - 2024. All rights reserved.