Tag: perl

Excel :: Writer :: XLSX单元格(带date和时间)需要刷新

我可以使用Excel :: Writer :: XLSX包从DBI查询的结果中成功创buildxlsx。 唯一的麻烦是在Excel 2010中打开的date和时间单元格需要刷新,即F2 <enter>才能正确显示。 显示示例2012-12-02 17:48:33.000电子表格打开时 一旦刷新: 02/12/2012 17:49 F2 <enter>后的所需格式 我将不胜感激任何提示/指导什么可能会导致这一点,如果这个问题可以在我的Perl脚本中解决? 非常感谢… PS自动计算启用,Win 7的StrawberryPerl 5.16 更新:为了完整起见,并且可能对其他人有所帮助:我正在使用以下构造来从查询中写入logging,这些logging可能是纯string或date时间。 如果一个muff或者正则expression式捕获date,或者将sprintf放入write_excel_date方法所要求的正确格式string中, write_excel_date一个普通string写入单元格。 那是我的问题。 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 ); […]

如何通过Perl脚本编写带有特殊字符的excel文件?

我正在通过Perl代码写入Excel文件。 当我在XML文件中插入数据并在任何浏览器中查看时,我会看到正确的具有特殊字符的数据,但是当我在Excel文件中写入相同的数据时,会显示垃圾字符。 例如:(来自浏览器上XML文件的单词)Gràcia – (Excel文件中的单词)GrÃia 我正在使用“Spreadsheet :: XLSX”阅读excel和“Excel :: Writer :: XLSX”来编写excel。 还需要帮助findexcel字段的编码格式。 你有什么主意吗? 提前致谢。

Perl:读取电子邮件并使用邮件内容作为标准input以进行Excel更新

我正在寻找一些启动Perl脚本的帮助。 我对Perl相对不熟悉,所以帮助将不胜感激:) 基本上,要开始一个项目,写一个脚本,以帮助保持与我一直在工作的小时。 基本上我想脚本来电子邮件(自动使用cron)我提醒我每天发送我的小时,然后我发送一封电子邮件回来的消息,如“03/02/14 7.30 18.30”脚本然后将读取数据和更新Excel电子表格保持小时的日志。 我知道除了让脚本读取电子邮件之外,怎么做都行。 我一直在研究MIME :: * MAIL :: *,但我不完全确定哪个软件包是最好的,以及如何真正去做。 提前致谢, 奥利

使用Spreadsheet :: ParseExcel时出错

编译以下代码时出现2个错误: #!/usr/bin/perl use strict; use warnings; use Spreadsheet::ParseExcel; my $xlsparser = Spreadsheet::ParseExcel->new(); my $xlsbook = $parser->parse('xsl_test.xls'); my $xls = $xls->worksheet(0); my ( $row_first, $row_last ) = $xls->row_range(); my ( $col_first, $col_last ) = $xls->col_range(); my $csv = ''; for my $row ( $row_first .. $row_last ) { #Step through each row for my $col ( […]

如何在使用Perl和Excel时禁用科学记数法

我正在使用Excel :: Writer :: XLSX模块在Excel工作表中打印数字,但正在用科学记数法打印大整数。 可以打印成十进制数吗? 例如使用 $worksheet->write_number( 0, 0, 123456 ); $worksheet->write_number( 'A2', 2.3451 ); 由于大数字以科学记数法打印有一些限制。

可以Spreadsheet :: WriteExcel更改单元格的格式而不修改其内容?

在我的Perl脚本中,我使用Spreadsheet :: WriteExcel模块创build一个Excel文件。 该文件包含一个表,其大小是dynamic的 – 即,我不知道有多less行,直到表已被创build。 我希望表格的最后一行有一个稍微不同的格式(例如,它的下边框是“===”)。 不幸的是,当行被创build时,我不能应用这种(不同的)格式,因为那个时候我还不知道它会是最后一行。 所以,我的问题是:我可以改变已经存在的单元格的格式而不改变它的内容吗? 如果我将undef作为单元格的值传递给$worksheet->write()方法,它只是用空白单元格覆盖单元格的内容。

使用perl的列宽自动调整function

我已经生成了使用perl脚本使用一组csv文件的excel表。在那我需要设置列的宽度作为自动适合 。假设做我有得到在模块中这样做的方式称为OLE我不知道如何做到这一点,请你帮我?

使用MIME :: Lite将xlsx附加到电子邮件

我正在尝试使用Excel::Writer::XLSX和MIME::Lite发送带有附加xlsx文件的电子邮件。 Excel文件的生成工作,因为我可以scp和Excel中打开文件没有任何问题。 当我尝试从我的电子邮件客户端(Outlook 2013)打开附件时出现此错误: “Excel无法打开文件”from_2014-06_to_2014-07.xlsx“,因为文件格式或文件扩展名无效,请确认文件没有被破坏,文件扩展名与文件的格式相匹配。 outlook展示的文件大小是444B,但实际上是95K。 我一直在使用Spreadsheet::WriteExcel发送xls文件,并在以前没有任何问题的情况下input“application / vnd.ms-excel”。 这是我试图发送电子邮件: sub send_mail{ my $filename = shift; my $to_email = shift; my $from_email = shift; my $date = shift; $filename = shift; my $mail = MIME::Lite->new( 'From' => '$from_email', 'To' => $to_email, 'Subject' => "Radio/TV stats $date", 'Type' => 'multipart/mixed', #'content-type' => 'application/zip', #'Data' => "Here […]

Perl'通过包“Spreadsheet :: ParseExcel :: Workbook”找不到对象方法“工作表”

我正在尝试打开两个Excel .xls文件进行比较。 包括我 use Spreadsheet::ParseExcel; 然后,我继续我的代码如下: my $parser_r = Spreadsheet::ParseExcel->new(); my $resultbook = $parser_r->parse($absPathResult); my $parser_i = Spreadsheet::ParseExcel->new(); my $resultideal = $parser_i->parse($absPathIdeal); @worksheetsListResult = $resultbook->worksheets(); @worksheetsListIdeal = $resultideal->worksheets(); 我遇到的第一个错误是“无法find对象方法”parsing器“…”,但通过将“parsing器”更改为“parsing器”解决了这个问题。 当我再次执行脚本时,出现错误:无法通过“Spreadsheet :: ParseExcel :: Workbook”包find对象方法“工作表”。 我正在Linux,Perl v5.8.5中运行脚本。 任何想法是什么在这里可能的问题? 我是Perl语言的新手。 所有的评论都非常感谢。 PS:当我在Windows中运行类似的代码时,一切正常。

为什么在读取Perl中的Excel 2007(.xlsx)文件时,数值会被截断?

我正在使用Spreadsheet :: ParseExcel读取.xls文件,并能够按原样获取数据。 但是,使用Spreadsheet :: XLSX读取.xlsx文件时,读取的值将被截断。 例如, 2.4578 in .xls和.xlsx文件分别读取为2.4578和2.45 。 请build议为什么.xlsx文件数据已损坏。