C# 将Gridview表导出到Excel

C# 将Gridview表导出到Excel,c#,excel,gridview,export,datagridviewcolumn,C#,Excel,Gridview,Export,Datagridviewcolumn,我正在使用以下代码将gridview表导出到Microsoft Excel: private void button5_Click(object sender, EventArgs e) { Microsoft.Office.Interop.Excel.Application Excel = new Microsoft.Office.Interop.Excel.Application(); Workbook wb = Excel.Workbooks

我正在使用以下代码将gridview表导出到Microsoft Excel:

private void button5_Click(object sender, EventArgs e)
    {
        Microsoft.Office.Interop.Excel.Application Excel = new     Microsoft.Office.Interop.Excel.Application();
        Workbook wb = Excel.Workbooks.Add(XlSheetType.xlWorksheet);
        Worksheet ws = (Worksheet)Excel.ActiveSheet;
        Excel.Visible= true;
        ws.Cells[1, 1] = "VehiclePlateNumber";
        ws.Cells[1, 2] = "VehicleDescription";
        ws.Cells[1, 3] = "Distance";

        for (int j = 2; j <= datagridview1.Rows.Count; j++)
        {

            for (int i = 2; i <= 3; i++)

            {
                ws.Cells[j, i] = datagridview1.Rows[j - 2].Cells[i - 1].Value;
            }

}

工作正常,但第一列只显示标题文本,没有数据,我不知道问题出在哪里,我试图对代码进行一些更改,但无法找到解决方案,请提供帮助?

他们设置for循环的方式只会导致在两列i=2中循环;我认为阿波美尼几乎是对的

ws.Cells[j+1,i+1]=datagridview1.Rows[j].Cells[i].Value


由于某些原因,excel不是基于零的。使用此代码解决j.

问题后,唯一的区别是+1:

for (int j = 2; j <= datagridview1.Rows.Count; j++)
{
for (int i = 1; i <= 3; i++)
{
ws.Cells[j, i] = datagridview1.Rows[j - 2].Cells[i - 1].Value;
}
}
}

当我按下按钮时,它给了我一个错误,错误是:COM异常是未处理的HARESULT 0x800A03E异常在我使用您的代码后,我得到了所有数据,但所有标题文本列都消失了,为什么我要面对这个问题:/
for (int j = 2; j <= datagridview1.Rows.Count; j++)
{
for (int i = 1; i <= 3; i++)
{
ws.Cells[j, i] = datagridview1.Rows[j - 2].Cells[i - 1].Value;
}
}
}