Была задача: Записать в Excel двухмерный массив.
Нашёл функцию
... функция работает хорошо, НО только с одномерными массивами .
В результате дум написал следующею функцию для вывода данных двухмерного массива по столбцам:
Нашёл функцию
Код:
_ExcelWriteArray
В результате дум написал следующею функцию для вывода данных двухмерного массива по столбцам:
Код:
#include <Array.au3>
Dim $Array[3][5] = [["Peta", "Ctyj", "Вася", 6, 4],["Ivan", 2, 3, "Beer", 6],["Vfrc", 7, "TT", 6, 8]]
$ArrayColumn = _ArrayOutColumn($Array)
;~ _ArrayDisplay($ArrayColumn)
For $i = 0 To UBound($Array, 2) - 1
;~ _ArrayDisplay($ArrayColumn[$i],"Column "&$i)
ConsoleWrite(_ArrayToString($ArrayColumn[$i], @TAB) & @CRLF)
Next
ConsoleWrite('---------------------'&@CRLF)
$ArrayColumn = _ArrayOutColumn($Array,1)
ConsoleWrite(_ArrayToString($ArrayColumn, @TAB) & @CRLF)
Func _ArrayOutColumn($mArray,$column = -1) ;($Array, Number column)
If Not IsArray($mArray) Then Return SetError(1)
If UBound($mArray,0) <> 2 Then Return SetError(2)
Dim $ArrayResult[UBound($mArray, 2)]
Dim $ArrayTemp[UBound($mArray, 1)]
For $WIndex = 0 To UBound($mArray, 2) - 1 Step 1
For $HIndex = 0 To UBound($mArray, 1) - 1 Step 1
$ArrayTemp[$HIndex] = $mArray[$HIndex][$WIndex]
Next
$ArrayResult[$WIndex] = $ArrayTemp
Next
if $column = -1 Then
Return $ArrayResult
ElseIf $column >= 0 and $column <= UBound($mArray, 2) Then
Return $ArrayResult[$column]
EndIf
EndFunc ;==>_ArrayInColumn