[已解决]可否将数组所有行一次性横向写入excel表??
本帖最后由 pchome2000 于 2010-11-13 14:46 编辑Local $avArray = [["JPM", "Holger", "Jon", "Larry", "Jeremy"], ["Valik", "Cyberslug", "Nutster", "JdeB", "Tylo"]]
_ArrayDisplay($avArray, "$avArray 为二维数组")
_ArrayDisplay($avArray, "$avArray 为二维数组, 颠倒的", -1, 1)
可否将数组所有行一次性横向写入excel表?? 本帖最后由 pchome2000 于 2010-11-13 14:47 编辑
;横向写入数组,修改自 _ExcelWriteSheetFromArray 函数。
Func _ExcelWriteSheetRowFromArray($oExcel, ByRef $aArray, $iStartRow = 1, $iStartColumn = 1, $iRowBase = 1, $iColBase = 1)
; Test inputs
If Not IsObj($oExcel) Then Return SetError(1, 0, 0)
If $iStartRow < 1 Then Return SetError(2, 0, 0)
If $iStartColumn < 1 Then Return SetError(2, 1, 0)
If Not IsArray($aArray) Then Return SetError(3, 0, 0)
Local $iDims = UBound($aArray, 0), $iLastRow = UBound($aArray, 1) - 1, $iLastColumn = UBound($aArray, 2) - 1
If $iDims <> 2 Then Return SetError(3, 1, 0)
If $iRowBase > $iLastRow Then Return SetError(4, 0, 0)
If $iColBase > $iLastColumn Then Return SetError(4, 1, 0)
Local $iCurrCol
$iCurrCol = $iStartColumn
For $r = $iRowBase To $iLastRow
For $c = $iColBase To $iLastColumn
$oExcel.Activesheet.Cells($iStartRow,$iCurrCol).Value = $aArray[$r][$c]
$iCurrCol += 1
Next
;$iStartRow += 1
Next
Return 1
EndFunc ;==>_ExcelWriteSheetFromArray 确实好主意,谢谢您 用这个就行了
_ExcelWriteSheetFromArray($oExcel, $aArray, 1, 1, 0, 0)
将一个二维数组一次性写入工作表
后面的4个数字的意思,前两个1是指的单元格的行和列,后面的两个0是数组的参数 记上,稍后慢慢学 新手表示看的晕 Thanks for your kind sharing! 谢谢楼主修改
页:
[1]