DataGridView
に表示されているデータをExcelスプレッドシートにエクスポートするvb.netアプリケーションのエクスポート手順を記述しました。Excelのエクスポート同じ行を複数回エクスポートする
しかし、DataGridView
の23行すべてをコピーするのではなく、同じものを23回コピーします。下記のFor Loop
の何が間違っていますか?それは1つのレコードのみをコピーするということですか?
For i = 0 To dgvExport.RowCount - 1
For j = 0 To dgvExport.ColumnCount - 1
For k As Integer = 1 To dgvExport.Columns.Count
xlWorksheet.Cells(1, k) = dgvExport.Columns(k - 1).HeaderText
xlWorksheet.Cells(i + 2, j + 1) = dgvExport(j, 1).Value.ToString
Next
Next
Next
私は、コピーされたフィールド名、したがってHeaderText
ラインとk
変数を必要としています。
私のDGVのスニペットは、異なるレコードがあることを示しています。
結果のエクスポート;
EDIT示唆したように、私は次のよう
For k As Integer = 1 To dgvExport.Columns.Count
xlWorksheet.Cells(1, k) = dgvExport.Columns(k - 1).HeaderText
Next
For i = 0 To dgvExport.RowCount - 1
For j = 0 To dgvExport.ColumnCount - 1
xlWorksheet.Cells(i + 3, j + 1) = dgvExport(j, i).Value.ToString
Next
Next
に私のコードを変更しかし、今
ライン上オブジェクト参照がに設定されていないエラーが発生します
オブジェクトのインスタンス
xlWorksheet.Cells(i + 3, j + 1) = dgvExport(j, i).Value.ToString
'K 'ループエクスポートヘッダーのセルをエクスポートし、他の二つのループの内側にあってはなりません、 'dgvExport(j、1)'は 'dgvExport(j、i)'に変更する必要があります。 – BrakNicku
@BrakNicku、ループを分離して1をiに変更すると、「dgvExport(j、i)」の「オブジェクト参照がオブジェクトのインスタンスに設定されていません」と表示されます – David
ループは次のとおりです。 Column/For Each Column - 私は23の列があると推測しています。ヘッダテキストに対して1つのループを行い、データのメインの行/列ループを行います。 – Plutonix