如何安装 spreadsheet:writeexcel

如何安装 spreadsheet:writeexcel,第1张

Spreadsheet::WriteExcel,它能动态生成一个真正的、二进制的、Excel的电子数据表格文件。

在这个模块中,你可以创建一个工作手册,并在其中加入工作表,然后直接写入工作表单元格。有许多格式化选项允许你改变字段数据的格式、黑体、对齐方式、字体、前景和背景颜色、填充图案以及边框。

另外,Spreadsheet::WriteExcel可以改变字体,文字变形和旋转文字,插入位图,设置密码保护工作表,以及建立能用鼠标扩展的数据集合。当然还能够设置打印选项和页面暂停的功能。

该模块还可以写标准输出数据,因此它可以在cgi-bin程序中使用。其他程序语言可以通过HTTP

URL参照cgi-bin,来请求Excel电子数据表格电子数据表格。

下面是一个例子,它用DBI从EMP表中提取数据并用公式和格式化生成一个Excel电子数据表格电子数据表格。

use DBI

use Spreadsheet::WriteExcel

# connect to the local database

my $dbh =

DBI->connect(’dbi:Oracle:’,’scott’,’tiger’) || die

$DBI::errstrbitscn.com

print "Generating Excel Spreadsheet\n"

my $workbook = new Spreadsheet::WriteExcel "emp.xls"

my $worksheet = $workbook->add_worksheet()

my $fmt = {

HEADER =>

$workbook->add_format(bold=>1,align=>’center’,

bottom=>2,bg_color=>’silver’),

ENAME =>

$workbook->add_format(bold=>1,color=>’blue’),

MONEY =>

$workbook->add_format(

num_format=>’$#,##0.00’,align=>’right’),

TOTAL =>

$workbook->add_format(

num_format=>’$#,##0.00’,align=>’right’,bold=>1,

top=>2),

}

print "Querying Employees\n"

my $sth = $dbh->prepare(’select * from emp’) ||

die $DBI::errstr

my $rc = $sth->execute

my $r = 1

$worksheet->write($r-1,0,’Employee’,$fmt->{HEADER})

$worksheet->write($r-1,1,’Salary’,$fmt->{HEADER})

$worksheet->write($r-1,2,’Commission’,$fmt->{HEADER})

$worksheet->write($r-1,3,’Total’,$fmt->{HEADER})

$r++

while (my $row = $sth->fetchrow_hashref)

中国网管联盟

{

$worksheet->write($r-1,0,$row->{ENAME},$fmt->{ENAME})

$worksheet->write($r-1,1,$row->{SAL},$fmt->{MONEY})

$worksheet->write($r-1,2,$row->{COMM},$fmt->{MONEY})

$worksheet->write($r-1,3,"=B$r+C$r",$fmt->{MONEY})

$r++

}

$worksheet->write($r-1,0,’’,$fmt->{TOTAL})

$worksheet->write($r-1,1,’=SUM(B2:B’.($r-1).’)’,$fmt->{TOTAL})

$worksheet->write($r-1,2,’=SUM(C2:C’.($r-1).’)’,$fmt->{TOTAL})

$worksheet->write($r-1,3,"=B$r+C$r",$fmt->{TOTAL})

print "Processed " . ($r-2) ." rows\n"

$sth->finish

# 创建一个新的EXCEL文件

my $workbook = Spreadsheet::WriteExcel->new('test.xls')

# 添加一个工作表

$worksheet = $workbook->add_worksheet()

# 新建一个样式

$format = $workbook->add_format()# Add a format

$format->set_bold()#设置字体为粗体

$format->set_color('red')#设置单元格前景色为红色

$format->set_align('center')#设置单元格居中

#使用行号及列号,向单元格写入一个格式化和末格式化的字符串

$col = 1

$row = 2

$worksheet->write($row, $col, 'Hi Excel!', $format)

$worksheet->write( $col-1, $row-1 , 'Hi Excel!')

$worksheet->write(1,$col, 'Hi Excel!')

#使用单元格名称(例:A1),向单元格中写一个数字。

$worksheet->write('A3', 1.2345)

$worksheet->write('A4', '=SIN(PI()/4)')

exit

在网上找到了demo代码,需要安装相关的包,在winddows下,

cmd模式,ppm,安装Spreadsheet-WriteExcel包。

PS:如果碰到中文写入时乱码问题,要ppm 安装Unicode_Map包,按照如下方法使用

use Unicode::Map()

my $Map = new Unicode::Map("GB2312")

my $abc='你好!'

$worksheet->write_unicode($LineCount, 1, $Map->to_unicode( $abc))

这样就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12002971.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存