خروجی اکسل از دیتا گرید در C# wpf
سلام از کد زیر برای خروجی اکسل گرفتن از دیتا گرید در wpf استفاده کردم ولی به سطر 11 از جدول که میرسه خطا میده می گه نوع مشکل داره و ... در صورتی که همه اش متن هست و با حذف رکورد 11 باز هم به سطر جدید گیر میده
private void btnExcel_Click(object sender, RoutedEventArgs e)
{
if (dataGrid.Items.Count < 1)
{
MessageBox.Show("اطلاعاتی برای خروجی گرفتن وجود ندارد");
}
else
{
dataGrid.SelectedIndex = 0;
dataGrid.SelectedItem = dataGrid.SelectedItems[0];
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
Excel.Range rangeToHoldHyperlink;
Excel.Range CellInstance;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Add(misValue);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1) ;
xlApp.DisplayAlerts = false;
//Dummy initialisation to prevent errors.
rangeToHoldHyperlink = xlWorkSheet.get_Range("A1", Type.Missing);
CellInstance = xlWorkSheet.get_Range("A1", Type.Missing);
for (int i = 1; i < dataGrid.Columns.Count + 1; i++)
{
xlWorkSheet.Cells[1, i] = i.ToString() ;
xlWorkSheet.Cells[2, i] = dataGrid.Columns[i - 1].Header.ToString();
}
dataGrid.SelectedItem = dataGrid.Items[0];
string cell="";
for (int i = 0; i < dataGrid.Items.Count - 1; i++)
{
for (int j = 0; j < dataGrid.Columns.Count; j++)
{
object item = new object();
item= dataGrid.Items[i];
//MessageBox.Show("I="+i.ToString()+"J="+j.ToString( ), (dataGrid.SelectedCells[j].Column.GetCellContent(item) as TextBlock).Text);
cell = (dataGrid.SelectedCells[j].Column.GetCellContent(item) as TextBlock).Text;
try
{
xlWorkSheet.Cells[i + 3, j + 1] = cell;
}
catch { MessageBox.Show("I=" + i.ToString() + "J=" + j.ToString(),cell); }
}
}
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Excel Document(*.xlsx)|*.xlsx";
sfd.FileName = "";
if (sfd.ShowDialog() == true)
{
xlWorkBook.SaveAs(sfd.FileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode. xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
}
xlApp.Quit();
}
}