从表中读取值

时间:2012-12-07 07:35:29

标签: c# asp.net excel

我使用此代码在我的表格中填充我的gridview中的值:

Table table = new Table();

 // get gridlines from gridview
table.GridLines = GridView1.GridLines;

if (GridView1.HeaderRow != null)
{
    table.Rows.Add(GridView1.HeaderRow);
}

foreach (GridViewRow row in GridView1.Rows)
{
    table.Rows.Add(row);
}

if (GridView1.FooterRow != null)
{
    table.Rows.Add(GridView1.FooterRow);
}

我需要的是将包含gridview值的表格中的每个数据读入Excel工作表单元格。 我怎样才能做到这一点?

PS:这是我在C#中代码隐藏的工作表obj。

Excel.Workbook xlWorkBook;
     Excel.Worksheet xlWorkSheet;

或者是否还有其他方法可以将GridView中的数据添加到其他内容中,使用表格可以轻松读取?

1 个答案:

答案 0 :(得分:0)

    public void ExportToExcel()
    {
        var Excel = new Microsoft.Office.Interop.Excel.Application();
        XlReferenceStyle RefStyle = Excel.ReferenceStyle;
        Excel.Visible = true;
        Workbook wb = null;
        string path = "yourpath";
        try
        {
            wb = Excel.Workbooks.Add(path); 
        }
        catch (System.Exception ex) 
        { 
            throw new Exception(ex.Message); 
        }
        Worksheet ws = wb.Worksheets.get_Item(1) as Worksheet ;
        for (int j = 0; j < GridView1.Columns.Count; ++j)
        {
            (ws.Cells[1, j + 1] as Range).Value2 = GridView1.Columns[j].HeaderText;
            for (int i = 0; i < GridView1.Rows.Count; ++i) 
            {
                object Val = GridView1.Rows[i].Cells[j].Value;
                if (Val != null)
                    (ws.Cells[i + 2, j + 1] as Range).Value2 = Val.ToString();
            }
        }
        Excel.ReferenceStyle = RefStyle;
        Marshal.ReleaseComObject((object)Excel);         
        GC.GetTotalMemory(true); 
    }

是的,根据你要做的事情,有很多方法。在您的情况下,最简单的是CSV文件(这将与Excel合作优秀)。如果您有DataSource

,则无需使用DataGridView进行某些操作