65.9K
CodeProject 正在变化。 阅读更多。
Home

将DataGridView/列表导出到Excel的简单方法

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2012 年 10 月 5 日

CPOL
viewsIcon

22386

本文重点介绍一种非常简单且强大的将数据导出到EXCEL的方法。

介绍 

本文描述了在不使用任何第三方DLL、Office Interops或其他工具的情况下导出到Excel的方法。 这是一种实现导出功能的简单方法,并且非常可靠。 这为所有参与开发类似工具/实用程序以执行类似操作的人员提供了一个建议的解决方案。

背景 

此机制受到兼容XML/HTML的Excel引擎的启发。

使用代码 

以下方法是为导出功能编写的。 您可以简单地将其复制到您的应用程序中。 

private static string ExportDataGridView2EXCEL(DataGridView pDataGridView, string pFilePath)
{
    String file2exp = "<HTML><BR/><TABLE BORDER = 1 " + 
           "><TR><TH style= background-color:#E4E2E2>#</TH>";

    // Headers
    foreach (DataGridViewColumn col in pDataGridView.Columns)
    {
        if (col.Visible)
        {
            file2exp += "<TH style= background-color:#E4E2E2>" + 
                        col.HeaderText + "</TH>";
        }
    }
    file2exp += "</TR>";
    
    int cnt = 1; // row counter

    foreach (DataGridViewRow row in pDataGridView.Rows)
    {
        if (!row.Visible)
            continue;
        file2exp += "<TR><TD>" + cnt++ + "</TD>";
        foreach (DataGridViewCell cell in row.Cells)
        {
            if (!cell.Visible)
                continue;

            file2exp += "<TD>" + 
                 GetFormattedValue(cell) + "</TD>";
        }
        file2exp += "</TR>";
    }

    file2exp += "</TABLE></HTML>";

    File.WriteAllText(pFilePath, file2exp);

    return "Y";
}  

并在您想要导出DataGridView的地方调用此方法。 

关注点

这是一种建议用于将数据导出到Excel的便捷方法。 此外,可以通过逐单元格格式化来实现许多目的。 希望您喜欢这个方法。

© . All rights reserved.