在JS中通過range向excel對象賦值不能直接使用array,需要預先將array轉換成dictionary纔可以。
通過如下函數可以轉換js數組,JS的數組轉換成VB的數組函數:
function toVBArray1(jarray) {
var dict1 = new ActiveXObject('Scripting.Dictionary');
for (var i = 0; i < jarray.length; i++) {
dict1.add(i, i);
}
return dict1.items();
}
通過列區域對excel賦值要使用transpose
var vbArray = toVBArray1(jarray);
excelSheet.cells(1, 1).resize(vbArray.length, 1).value = excelSheet.application.Transpose(avbArray);
使用區域賦值可以極高的提高JS導出到Excel的效率