2009-12-02 49 views
0

我可以使用perl将excel文件保存为.csv,如下所示:如何使用perl在excel xls文件上保存数据?

print "Content-type: application/vnd.ms-excel\n"; 
print "Content-Disposition: attachment;filename=\"file name.xls\"\n\n";  
print"Fruits, Cost";  

#Then循环结果。

然而我需要将其保存为.xls因为我想使用颜色。任何人都可以帮忙吗?

+0

您是否尝试过使用Google搜索“perl excel”?我发现在这个主题上有很多很好的教程。 – 2009-12-02 16:01:08

回答

7

我强烈建议Spreadsheet::WriteExcel为您的需要。该库完全用Perl编写,因此您只需将CPAN库上传到您的网站并指定具体位置即可。下面的库文档和代码片段将帮助您开始。

#!/usr/bin/perl -w 
use strict; 
use lib qw(./lib); # Place for the downloaded WriteExcel library 
use Spreadsheet::WriteExcel; 

# Send headers 
print "Content-type: application/vnd.ms-excel\n"; 
print "Content-disposition: attachment;filename=rollcharts.org.xls\n\n"; 

# Create a new workbook and add a worksheet 
my $workbook = Spreadsheet::WriteExcel->new("-"); 
my $worksheet = $workbook->add_worksheet("Colorful Example"); 

# Create a new format with red colored text 
my $format = $workbook->add_format(); 
$format->set_color('red'); 

# Add header  
$worksheet->write(0, 0, "Fruit.", $format); 
$worksheet->write(0, 1, "Cost", $format); 

# Add Data 
$worksheet->write(1, 0, "Apple"); 
$worksheet->write(1, 1, "10.25"); 

# Close Workbook 
$workbook->close(); 
3

如果您不需要超级花哨功能,如丰富的文字,你可以用它Spreadsheet::WriteExcel很好地工作,是相当低开销太大。请使用my $workbook = Spreadsheet::WriteExcel->new('-');将您的工作簿直接写入STDOUT。

+0

感谢Dan的回复,但有没有办法做到这一点,而无需安装任何库,因为我需要把我的代码放在我没有太多权限的服务器上。再次感谢。 – Luci 2009-12-03 16:35:35