2017-03-27 11 views
0

いくつかの入力をユーザーに求めるWindowsフォームがあります。 2次元配列を作成します。新しいExcelブックを開き、そのブックのセルに配列を書き込みます。 配列にある値の代わりに、 "System.Int64 [] []"というセルに配置されている値を除いて、すべてが期待通りに機能しているようです。vb.net書き込み配列の配列をExcelワークシート

以下は、2次元配列(関数呼び出し)を作成するときのコードです。どんな助けもありがとうございます。おかげ

'Get Final Array 
    Dim fArray As Long()() 
    fArray = getFArray(numVars, numCombos, stepNumsArray, jArray) 
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
    Dim xlApp As New excel.Application 
    Try 
     Dim xlBook As excel.Workbook = xlApp.Workbooks.Add 
     Dim xlWS1 As excel.Worksheet = CType(xlBook.Worksheets(1), excel.Worksheet) 
     xlApp.Visible = True 
     Dim R As excel.Range 
     R = xlWS1.Cells.Range("A2:C13") 
     R.Value = fArray.ToString 

     xlWS1.SaveAs(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\" & "Test.xlsx") 
    Catch ex As Exception 
     MsgBox("Export to Excel Error: " & ex.Message) 
    Finally 
     xlApp.Workbooks.Close() 
     xlApp.Quit() 
     xlApp = Nothing 

    End Try 
+0

'Object.ToString()'のデフォルトの実装は、オブジェクトの 'Type.FullName'を出力することです。 –

+0

私はExcel APIについては何の手掛かりもありませんが、 'R.Value = fArray'という値に配列を直接割り当てることができます。あなたの範囲内のセルをループして、個別に設定する必要があるかもしれないということに失敗しました。 –

+0

http://stackoverflow.com/questions/536636/write-array-to-excel-range –

答えて

0

主な問題は、アレイ上.ToStringを使用して、そして(Excelはすべての数値タイプのDoubleを使用)Long代わりにDoubleを使用して、ギザギザのアレイの代わりに、長方形のアレイの使用です。一旦それらが修正されると:

Dim fArray(11, 2) As Double 
' ... 
xlWS1.Range("A2:C13").Value2 = fArray 
関連する問題