One change in WMF 5.0 that I hadn’t got round to testing was the speed up in COM based operations.
COM – Component Object Model – was the Microsoft programming model before .NET. Its old but still around – the interfaces for Internet Explorer and Office are all COM based for instance.
WMF 5.0 promises faster running for COM based applications. To test it I tried an old script that opens an Excel spread sheet and populates some columns.
$xl = New-Object -comobject ‘Excel.Application’
$xl.visible = $true
$xlbooks =$xl.workbooks
$wkbk = $xlbooks.Add()
$sheet = $wkbk.WorkSheets.Item(1)
## create headers
$sheet.Cells.Item(1,1).FormulaLocal = ‘Value’
$sheet.Cells.Item(1,2).FormulaLocal = ‘Square’
$sheet.Cells.Item(1,3).FormulaLocal = ‘Cube’
$sheet.Cells.Item(1,4).FormulaLocal = ‘Delta’
$row = 2
for ($i=1;$i -lt 25; $i++){
$f = $i*$i
$sheet.Cells.Item($row,1).FormulaLocal = $i
$sheet.Cells.Item($row,2).FormulaLocal = $f
$sheet.Cells.Item($row,3).FormulaLocal = $f*$i
$sheet.Cells.Item($row,4).FormulaR1C1Local = ‘=RC[-1]-RC[-2]’
$row++
}
In the past working with Excel has been glacially slow. So slow that you could watch each individual change.
In WMF 5.0 its much, much faster.
In the past my advice has been to create a CSV file and then import the data from that into Excel. With the much better speed offered by WMF 5.0 I may have to reconsider that and think that working directly with Excel is now a viable proposition.