DataGridView 反向到 Excel.有答案

本文关键字:答案 Excel DataGridView | 更新日期: 2023-09-27 18:37:24

我有一个填充我的 excel 工作表的数据网格视图。它工作正常,但我需要反转它,因为它在数据网格视图中显示:A B C,这是我想要的,但是当我将其发送到 excel 时,它会显示:C B A
我发现了其他有相同问题的帖子,并使用了我的代码中提供的答案。我得到了一个nullreferenceexception但我的所有行都有一个值。可能是我在数据网格视图底部拾取空白行吗?

for (int i = dataGridView1.Rows.Count-1; i >= 0; i--)
{
DataGridViewRow row = dataGridView1.Rows[i];
DataRow myRow = (row.DataBoundItem as DataRowView).Row;
DatasetRead( FlagWhich, myRow, XLRowPos );
XLRowPos++;
}

这就是我的问题所在:row.DataBoundItem行具有正确的值,但数据绑定项为空。从我在其他数据网格视图/excel帖子中找到的内容来看,这是由于空行必须是最后一行。我已经试过Rows.Count - 1但它不起作用

这是我向前阅读的代码:

foreach (DataGridViewRow row in rows)
{
DataRow myRow = (row.DataBoundItem as DataRowView).Row;
DatasetRead( FlagWhich, myRow, XLRowPos );
XLRowPos++;
}

这有效,但我需要相反。

=====

=下面的答案======

这对我有用:

foreach (DataGridViewRow row in lst.AsEnumerable( ).Reverse( ))
{
    for (int i = 0; i < row.Cells.Count; i++)
    {
        excelSheet.Cells[XLRowPos, i + 1] = row.Cells[i].Value.ToString( );
    }
    XLRowPos++;
}

DataGridView 反向到 Excel.有答案

foreach (var dataRow in dataGridView1.Rows.Reverse())
{
  DataRow myRow = (dataRow.DataBoundItem as DataRowView).Row;
  DatasetRead( FlagWhich, myRow, XLRowPos );
  XLRowPos++;
}