سلام از کد زیر برای خروجی اکسل گرفتن از دیتا گرید در 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();
}
}