作者:乔山办公网日期:
返回目录:excel表格制作
my $Excel = Win32::OLE->new('Excel.Application', sub{(shift)->Quit;});是用来百新建一个Win32::OLE对象
而my $Excel= Win32::OLE->GetActiveObject('Excel.Application'); 是使用已经打开的度Excel进行工作。
如果目前你没有打开Excel,必须使用new新建一个,如果打问开了就可以使用GetActiveObject了。你的第二种写法很怪,一般会写答成if (!$excel){$Excel = Win32::OLE->new('Excel.Application', sub{(shift)->Quit;});
},因此也就与第一种一样了。因此你的两种写法本质上没有什么区别,既然回出错了,建议关闭打开的Excel,然后使用new新建Win32::OLE对象进行操作。你遇到的问题估计是程序那个地方写错了,还是再查答看一下程序吧。
这个copy不算是perl问题,是VB的问题,要去查MSDN里的《Excel VBA reference》手册。
# 调整列宽
$wks->Columns("A")->{ColumnWidth} = 15;
#数字格式zd
$wks->Columns("E:I")->{NumberFormat} = "0.00";
#字体
$wks->Range("A1")->{Font}->{Bold} = 1;
$wks->Cells(5, 3)->{Font}->{Size} = 14
你说的是不是批注里的字体?如果是就这样操作:编辑批注一点鼠标右键一设置批注格式一根据自己的需要选择修改内容一确定
行高,应该zhidao是RowHeight,即
# 调整行高
$wks->Rows(1)->{RowHeight} = 15;
居中,应该是HorizontalAlignment
#设置单回元格(1,1)为横向居中
$wks->Cells(1,1)->{HorizontalAlignment} = xlHAlignCenter;
#设置第一列为横向居中
$wks->Columns(1)->{HorizontalAlignment} = xlHAlignCenter;
注意使用答常量xlHAlignCenter必须先引用:
use Win32::OLE::Const 'Microsoft Excel';