0
ヘッダーをエクスポートしてもOKですが、行はエクスポートされません。現時点では、2列あり、2行しかエクスポートしようとしていません。DataGridをエクスポートしてヘッダーをExcelに出力しますが、行はありません
私は私のループに何か間違っていると思うが、私はそれを見ていない。
新しい目を探しています。あなたが列に別々のループを持ちたい
private void btnExport_Click(object sender, EventArgs e)
{
// Creating a Excel object.
Microsoft.Office.Interop.Excel._Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel._Workbook workbook = excel.Workbooks.Add(Type.Missing);
Microsoft.Office.Interop.Excel._Worksheet worksheet = null;
try
{
worksheet = workbook.ActiveSheet;
worksheet.Name = "ExportedFromDatGrid";
int cellRowIndex = 1;
int cellColumnIndex = 1;
//Loop through each row and read value from each column.
for (int i = 0; i < DGV.Rows.Count; i++)
{
for (int j = 0; j < DGV.Columns.Count; j++)
{
if (cellRowIndex == 1)
{
worksheet.Cells[cellRowIndex, cellColumnIndex] = DGV.Columns[j].HeaderText;
}
else
{
worksheet.Cells[cellRowIndex, cellColumnIndex] = DGV.Rows[i].Cells[j].Value.ToString();
}
cellColumnIndex++;
}
cellColumnIndex = 1;
cellRowIndex++;
}
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
saveDialog.FilterIndex = 2;
if (saveDialog.ShowDialog() == DialogResult.OK)
{
workbook.SaveAs(saveDialog.FileName);
MessageBox.Show("Export Successful");
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
excel.Quit();
workbook = null;
excel = null;
}
}
[OK]を、最新の編集は今ヘッダーをつかみ、データグリッドの最後の行は、しかし、データグリッドの最初の行はスキップされます。 – Logan
これで1の代わりに 'if(cellRowIndex == 0)'を設定してももちろん私にヘッダーは与えられませんが、DataGridにデータが格納されている2行が表示されます。しかし、何らかの理由でヘッダーを取得した場合、データグリッドの最後の行しか取得できません。 – Logan
他の提案はありますか? – Logan