繁体   English   中英

将Gridview表导出到Excel

[英]Exporting Gridview table to Excel

我使用以下代码将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 ;i<=3 ),并且您也错过了最后一行。 同样在您的代码中,您缺少右括号。

尝试:

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

我认为远地点几乎是正确的。

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;
}
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM