亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5519 | 回復(fù): 2
打印 上一主題 下一主題

求助一段win32::ole寫入excel的代碼,工作需要 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-08-25 23:14 |只看該作者 |倒序?yàn)g覽
現(xiàn)在要往一個(gè)已經(jīng)存在并有數(shù)據(jù)的excel表格中寫入數(shù)據(jù),因?yàn)楸砀褚呀?jīng)有數(shù)據(jù),所以需要在這些數(shù)據(jù)之后插入數(shù)據(jù),能不能用win32:le寫段代碼,工作需要,求大俠幫忙!
比如 %work={'name'=>'jack',
                     'project'=>'venus',
                     'pid'=>'R0629"
                     'add'=>'shanghai'}
需要插入到一個(gè)excel.xls文件中,使用win32:le,需要知道excel已經(jīng)存在數(shù)據(jù)的行截至數(shù),然后緊接著下一行插入%work中的值(鍵不需要存入,依次按列插入哈希值,每個(gè)cell存入一個(gè)值即可),求一段完整代碼,謝謝!

論壇徽章:
6
丑牛
日期:2014-03-21 15:42:04子鼠
日期:2014-04-12 11:50:17處女座
日期:2014-09-01 09:25:1115-16賽季CBA聯(lián)賽之吉林
日期:2015-12-22 14:01:5215-16賽季CBA聯(lián)賽之廣東
日期:2016-03-08 18:49:422016科比退役紀(jì)念章
日期:2016-07-06 12:19:55
2 [報(bào)告]
發(fā)表于 2013-08-26 14:13 |只看該作者
偶試試{:3_193:}
  1. #!perl
  2. package Xls;

  3. use strict;
  4. use Win32::OLE;

  5. sub new {
  6.     my ($class) = @_;
  7.     my $self = +{};
  8.     bless $self, $class;
  9.     return $self;
  10. }

  11. sub open_excel {
  12.     my $self   = shift;
  13.     my $xl_doc = shift;
  14.     my $excel = Win32::OLE->new('Excel.Application') or
  15.         die "Excel application is not installed:\n";
  16.     my $workbooks;
  17.    
  18.     # make excel visible
  19.     $excel->{Visible} = 1;

  20.     $workbooks = $excel->Workbooks->Open($xl_doc);
  21.     return $workbooks;
  22. }

  23. sub get_worksheet {
  24.     my ($self, $workbooks, $num) = @_;
  25.     my $sheet = $workbooks->Worksheets($num);
  26.     return $sheet;
  27. }

  28. sub get_cell_value {
  29.     my ($self, $sheet, $row, $col) = @_;
  30.     my $cell_obj = $sheet->Cells($row, $col);
  31.     my $value = q{};
  32.    
  33.     if ($cell_obj){
  34.         $value = $sheet->Cells($row, $col)->{Value};
  35.     }
  36.     $value ||= q{};
  37.    
  38.     return $value;
  39. }

  40. sub set_cell_value {
  41.     my ($self, $sheet, $row, $col, $value) = @_;
  42.     my $cell_obj = $sheet->Cells($row, $col);
  43.     $value ||= q{};
  44.    
  45.     if ($cell_obj){
  46.         $sheet->Cells($row, $col)->{Value} = $value;
  47.     }
  48. }

  49. 1;

  50. package main;
  51. use strict;

  52. my $xls_name = '/full/path/to/your/excel.xls';

  53. # parse the first worksheet
  54. my $worksheet_number = 1;

  55. # data to write
  56. my %work = (
  57.     name   =>'jack',
  58.     project=>'venus',
  59.     pid    =>'R0629',
  60.     add    =>'shanghai',
  61. );

  62. my $pm = Xls->new();
  63. my $workbooks = $pm->open_excel($xls_name);
  64. my $worksheet = $pm->get_worksheet($workbooks, $worksheet_number);

  65. # frist cell
  66. my $col = 1;
  67. my $row = 1;

  68. # get the cell in column one that has no value within
  69. while (1) {
  70.     my $cell_value = $pm->get_cell_value($worksheet, $row, $col);
  71.     last if !$cell_value;
  72.     $row++;
  73. }

  74. # write data in ordered sequences
  75. for my $key ('name', 'project', 'pid', 'add'){
  76.     $pm->set_cell_value($worksheet, $row, $col, $work{$key});
  77.     $col++;
  78. }

  79. # close
  80. $workbooks->Close
  81. __END__
復(fù)制代碼

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2013-09-05 11:07 |只看該作者
回復(fù) 2# stanley_tam

學(xué)習(xí)了,bless


   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP