求助一段win32::ole写入excel的代码,工作需要

60 views
Skip to first unread message

Baocheng Li

unread,
Aug 25, 2013, 8:26:07 PM8/25/13
to perlchina
现在要往一个已经存在并有数据的excel表格中写入数据,因为表格已经有数据,所以需要在这些数据之后插入数据,能不能用win32:ole写段代码,工作需要,求群里帮忙!
比如 %work={'name'=>'jack',
'project'=>'venus',
'pid'=>'R0629"
'add'=>'shanghai'}
需要插入到一个excel.xls文件中,使用win32:ole,需要知道excel已经存在数据的行截至数,然后紧接着下一行插入%work中的值(键不需要存入,依次按列插入哈希值,每个cell存入一个值即可),求一段完整代码,谢谢!

在网上搜了半天,貌似目前还没有办法用perl向已存在的excel插入数据,是这样吗?

Anthony WU

unread,
Aug 26, 2013, 8:40:13 AM8/26/13
to perl...@googlegroups.com

#!/usr/bin/perl -w
use strict;
use warnings;
use Win32::OLE;
my $excel = Win32::OLE->new ('Excel.Application') or die "\n";
my $Book = $excel->Workbooks->Open ('excel.xls');
my $Sheet = $Book->Worksheets (1);
$Sheet->Cells (2,1)->EntireRow->Insert (); # <<< �� B �������������
$Sheet->Range ('A2:D2')->{'Value'} = [ 'jack', 'venus', 'R0629',
'shanghai' ]; # <<< �� A2 �� D2 �����Y��
$Book->Close ();



-------- Original Message --------
Subject: [PerlChina] ����һ��win32::oleд��excel�Ĵ��룬������Ҫ
From: Baocheng Li <linus...@gmail.com>
To: perlchina <perl...@googlegroups.com>
Date: 26/8/2013 8:26
> ����Ҫ��һ���Ѿ����ڲ�����ݵ�excel�����д����ݣ���Ϊ����Ѿ�����
> �ݣ�������Ҫ����Щ���֮����� ��ݣ��ܲ�����win32:oleд�δ��룬������
> Ҫ����Ⱥ���æ��
> ���� %work={'name'=>'jack',
> 'project'=>'venus',
> 'pid'=>'R0629"
> 'add'=>'shanghai'}
> ��Ҫ���뵽һ��excel.xls�ļ��У�ʹ��win32:ole,��Ҫ֪��excel�Ѿ��������
> ���н�����Ȼ���������һ�в� ��%work�е�ֵ(����Ҫ����,���ΰ��в���
> ��ϣֵ��ÿ��cell����һ��ֵ����)����һ��������룬лл��
>
> ���������˰��죬ò��Ŀǰ��û�а취��perl���Ѵ��ڵ�excel������ݣ�����
> ����
> --
> ���յ����ʼ�����Ϊ������ Google ������̳�ġ�PerlChina Mongers �����顱
> ��̳��
> Ҫ�˶�����̳��ֹͣ���մ���̳�ĵ����ʼ����뷢�͵����ʼ���
> perlchina+...@googlegroups.com��
> Ҫ���������̳�����뷢�͵����ʼ��� perl...@googlegroups.com��
> ͨ��������ַ���ʴ���̳��http://groups.google.com /group/perlchina��
> <http://groups.google.com/group/perlchina%A1%A3>
> Ҫ�鿴���ѡ������ https://groups.google.com /groups/opt_out��
> <https://groups.google.com/groups/opt_out%A1%A3>

Baocheng Li

unread,
Aug 26, 2013, 10:01:36 AM8/26/13
to perlchina
非常感谢,在网上看了好多,都说不能在已存在的excel中追加数据,试了你的代码,是可以的。一个新问题,我现在是需要一个循环在一个excel当中追加数据,每一个数组元素我用split按空白分开,
然后占用一行,能否修改一下代码。$Sheet->Range ('A2:D2')->{'Value'} = [ 'jack', 'venus', 'R0629','shanghai' ];这段代码不知用循环怎么弄


2013/8/26 Anthony WU <anthon...@gmail.com>

#!/usr/bin/perl -w
use strict;
use warnings;
use Win32::OLE;
my $excel = Win32::OLE->new ('Excel.Application') or die "\n";
my $Book = $excel->Workbooks->Open ('excel.xls');
my $Sheet = $Book->Worksheets (1);
$Sheet->Cells (2,1)->EntireRow->Insert (); # <<< 在 B 列上面插入新列

$Sheet->Range ('A2:D2')->{'Value'} = [ 'jack', 'venus', 'R0629',
'shanghai' ]; # <<< 在 A2 到 D2 寫入資料
$Book->Close ();



-------- Original Message --------
Subject: [PerlChina] 求助一段win32::ole写入excel的代码,工作需要
From: Baocheng Li <linus...@gmail.com>
To: perlchina <perl...@googlegroups.com>
Date: 26/8/2013 8:26
> 现在要往一个已经存在并有数据的excel表格中写入数据,因为表格已经有数
> 据,所以需要在这些数据之后插入 数据,能不能用win32:ole写段代码,工作需
> 要,求群里帮忙!
> 比如 %work={'name'=>'jack',
> 'project'=>'venus',
> 'pid'=>'R0629"
> 'add'=>'shanghai'}
> 需要插入到一个excel.xls文件中,使用win32:ole,需要知道excel已经存在数据
> 的行截至数,然后紧接着下一行插 入%work中的值(键不需要存入,依次按列插入

> 哈希值,每个cell存入一个值即可),求一段完整代码,谢谢!
>
> 在网上搜了半天,貌似目前还没有办法用perl向已存在的excel插入数据,是这
> 样吗?
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”
> 论坛。
> 要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到
> perlchina+...@googlegroups.com
> 要向此网上论坛发帖,请发送电子邮件至 perl...@googlegroups.com
> 通过以下网址访问此论坛:http://groups.google.com /group/perlchina。
> <http://groups.google.com/group/perlchina%A1%A3>
> 要查看更多选项,请访问 https://groups.google.com /groups/opt_out。
> <https://groups.google.com/groups/opt_out%A1%A3>

--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到 perlchina+...@googlegroups.com
要向此网上论坛发帖,请发送电子邮件至 perl...@googlegroups.com
通过以下网址访问此论坛:http://groups.google.com/group/perlchina
要查看更多选项,请访问 https://groups.google.com/groups/opt_out

Baocheng Li

unread,
Aug 26, 2013, 10:46:24 AM8/26/13
to perlchina
Hi Anthony,
刚刚问的问题已经解决了,最后一个问题,我写入excel的时候,能指定字体是‘Arial'字号是10吗?


2013/8/26 Baocheng Li <linus...@gmail.com>
Reply all
Reply to author
Forward
0 new messages