EXCEL應用程序可以用VBA以外的語言開發,但不能在EXCEL環境下開發調試,只能用其他語言。其他語言的EXCEL操作可以通過使用OLE對象來實現,從下面的PERL示例代碼中可以理解其中的思路和方法:
#!/usr/bin/perl?
使用?嚴格;?
使用?警告;?
使用?Win32::OLE?qw(in?用);?
使用?Win32::OLE::Const?微軟?excel ';?
使用?Win32::OLE::NLS?qw(:區域設置?:時間);?
我的?$Excel?=?win32::OLE-& gt;GetActiveObject('Excel。應用’)?
||?win32::OLE-& gt;新建(' Excel。應用程序',?退出’);?
my $ excel file = ' E:\ learning program \ perl \ excel file . xls ';?
#關閉警告信息,如保存,而不跳出確認窗口?
$ Excel-& gt;{ display alerts } = 0;
#創建工作簿?
#我的?$ Book = $ Excel-& gt;工作簿-& gt;add();?
# $ Book-& gt;save as($ excel file);?#?添加工作簿並保存?
#直接打開壹個excel?如果存在的話?
我的$ Book = $ Excel-& gt;工作簿-& gt;打開($ excel file);?
#創建工作表對象?
我的?$Sheet?=?$ Book-& gt;工作表(" sheet 1 ");?
# $ Sheet->;activate();?
# $ Sheet->;{Name}?=?”DidItInPerl”;?
#插入數據?
我的?($mday,$mon,$year)?=?(local time(time));?
美元壹年?+=?1900;?
$mon?+=?1;?
我的?$str?=?美元年。"/".$mon。"/".$ mday?
#範圍?怎麽做?
$ Sheet->;範圍(" c 1 ")-& gt;{ Value } = $ str?
$ Sheet->;範圍(" d 1 ")-& gt;{Value}=“今天的日期”;?
#叠代插入數據?
foreach?我的$x?(1?..50)?{?
我的$range="A "。$ x;?
$ Sheet->;range($ range)-& gt;{Value}= "這是行$ range ";?
}?
#在工作表中循環?
我的?$sheetcnt?=?$ Book-& gt;工作表-& gt;count();?
foreach?(1..$sheetcnt){?
打印?" \t "?。$ Book-& gt;工作表($ _)-& gt;{Name}?。”\ n”;?
}?
foreach?我的?$Sheet(in?$ Book-& gt;{Worksheets}){?
打印?" \t "?。$ Sheet->;{Name}?。”\ n”;?
}?
#找到最後壹行?最後壹個方法列表?
我的?$LastRow?=?$ Sheet->;used range-& gt;查找({ What = & gt"*",?
SearchDirection = & gtxlPrevious,?
SearchOrder = & gtxlByRows })-& gt;{ Row };?
我的?$LastCol?=?$ Sheet->;used range-& gt;查找({ What = & gt"*",?
SearchDirection = & gtxlPrevious,?
SearchOrder = & gtxlByColumns })-& gt;{ Column };?
打印?最後壹列:“,$LastCol,”\ n”;?
打印?"最後壹行:",$LastRow," \ n ";?
#從第壹行到最後壹行讀取數據?
打印?"#"?x80," \ n ";?
打印?”從列A的第壹行到最後壹行讀取數據\ n”;?
我的$ tmp?
foreach?我的$last_data?(1..$LastRow)?{?
$ tmp = $ Sheet-& gt;範圍(" A "。$ last _ data)-& gt;{ Value };?
打印?"行$last_data中的數據:",$tmp," \ n ";?
}