خروجی اکسل از دیتا گیرید 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();
}
}
نقل قول: خروجی اکسل از دیتا گیرید C# wpf
سلام
این روش گرفتن خروجی درست نیست
باید از روش اصولی اون استفاده کنید