MR.alaa Ответов: 1

Экспорт представления сетки в excel windows form C#


Всем привет
у меня есть devexpress с agridview мне нужно экспортировать содержимое сетки в лист excel я использовал следующий код у меня есть только одна ошибка в строке
gridView1.GetDataRow(I).Cells[j].Value;

как я могу ее решить

Что я уже пробовал:

int rowsTotal = 0;
int colsTotal = 0;
int I = 0;
int j = 0;
int iC = 0;
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.WaitCursor;
Excel.Application xlApp = new Excel.Application();

try
{
    Excel.Workbook excelBook = xlApp.Workbooks.Add();
    Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelBook.Worksheets[1];
    xlApp.Visible = true;

    rowsTotal = gridView1.RowCount - 1;
    colsTotal = gridView1.Columns.Count - 1;
    var _with1 = excelWorksheet;
    _with1.Cells.Select();
    _with1.Cells.Delete();
    for (iC = 0; iC <= colsTotal; iC++)
    {
        _with1.Cells[1, iC + 1].Value = gridView1.Columns[iC].Caption;
    }
    for (I = 0; I <= rowsTotal - 1; I++)
    {
        for (j = 0; j <= colsTotal; j++)
        {
            _with1.Cells[I + 2, j + 1].value = gridView1.GetDataRow(I).Cells[j].Value;
            //  _with1.Cells[I + 2, j + 1].value = gridView1.GetRowCellValue(I).ToString();
        }
    }
    _with1.Rows["1:1"].Font.FontStyle = "Bold";
    _with1.Rows["1:1"].Font.Size = 12;

    _with1.Cells.Columns.AutoFit();
    _with1.Cells.Select();
    _with1.Cells.EntireColumn.AutoFit();
    _with1.Cells[1, 1].Select();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
    //RELEASE ALLOACTED RESOURCES
    System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;
    xlApp = null;
}

1 Ответов

Рейтинг:
1

#realJSOP

КАКУЮ ПРОБЛЕМУ ВЫ ВИДИТЕ? После того, как вы заглянули в мой хрустальный шар, я готов поспорить, что вы получаете "индекс вне диапазона исключения".

По моему опыту, строки и столбцы Excel индексируются на 1, а не на 0.


MR.alaa

моя проблема в том, что в gridcontol эта часть кода работает нормально управления gridview1.GetDataRow[Я].Ячейки[j]. значение;
но в devexpress я не могу достичь значения ячейки, я получаю undreline red error under Cells[j]. Value;