как экспортировать все данные из datagrid в excel
Есть код который экспортирует данные в Excel, но проблема в том что он передает не все данные и программа выдает ошибку "Ссылка на объект не указывает на экземпляр объекта"
private void toExcel_Click(object sender, RoutedEventArgs e)
{
Excel.Application ExcelApp = new Excel.Application();
ExcelApp.Application.Workbooks.Add(Type.Missing);
ExcelApp.Cells[1, 1] = "Дата";
ExcelApp.Cells[1, 2] = "Заряд";
ExcelApp.Cells[1, 3] = "t1°";
ExcelApp.Cells[1, 4] = "t2°";
ExcelApp.Cells[1, 5] = "t3°";
ExcelApp.Cells[1, 6] = "t4°";
ExcelApp.Cells[1, 7] = "t5°";
ExcelApp.Cells[1, 8] = "t6°";
ExcelApp.Cells[1, 9] = "t7°";
ExcelApp.Cells[1, 10] = "t8°";
ExcelApp.Cells[1, 11] = "t9°";
ExcelApp.Cells[1, 12] = "t10°";
ExcelApp.Visible = true;
for (int j = 0; j < TemperDataGrid.Columns.Count; j++)
{
for (int i = 0; i < TemperDataGrid.Items.Count; i++)
{
TextBlock text = TemperDataGrid.Columns[j].GetCellContent(TemperDataGrid.Items[i]) as TextBlock;
Excel.Range range = ExcelApp.Cells[i + 1, j + 1];
range.Value = text.Text; //здесь выходит ошибка
}
}
}
Данные в Datagrid при прокручивании данные есть

но при экспорте в excel записываются только видимые значения

Ответы (1 шт):
Автор решения: Gink
→ Ссылка
Как и сказал aepot стоило обращаться напрямую к данным
private void toExcel_Click(object sender, RoutedEventArgs e)
{
Excel.Application ExcelApp = new Excel.Application();
ExcelApp.Application.Workbooks.Add(Type.Missing);
for (int i = 0; i<stockList.Count; i++)
{
ExcelApp.Cells[i + 1, 1] = stockList[i].date;
ExcelApp.Cells[i + 1, 2] = stockList[i].bat;
}
ExcelApp.Visible = true;
}