如何将Excel工作表中的数据填充到网格中?

时间:2009-12-07 17:33:51

标签: c# asp.net

我正在开发一个应用程序,我必须从Excel工作表中获取电子邮件ID,并向每个ID发送一封电子邮件。我试图在网格中显示电子邮件ID作为测试。我的应用程序没有抛出任何错误,但它没有以所需的方式执行。

任何人都可以帮忙弄明白为什么会这样吗?

3 个答案:

答案 0 :(得分:1)

看看这个将Excel绑定到GridView的代码:

http://www.shiningstar.net/ASPNet_Articles/DataSet/DataSetProject5.aspx

它可能为您提供中性测试安全带。没有您的代码和电子表格,很难说出问题所在。

答案 1 :(得分:1)

以下链接显示了如何从Excel工作表中的所需单元格中提取数据,而不是将整个Excel工作表绑定到网格:

http://social.msdn.microsoft.com/Forums/en/vsto/thread/b6e8a28c-6760-4e86-a1aa-e2ce9ec36380

您也可以使用所选值填充DataTable,然后使用该DataTable填充DataGrid。

答案 2 :(得分:0)

          protected void Page_Load(object sender, EventArgs e)

             {

               if (!Page.IsPostBack)
                 {
                 Excel.Application appExl;
                 Excel.Workbook workbook;
                 Excel.Worksheet NwSheet;
                 Excel.Range ShtRange;
                 appExl = new Excel.Application();


                / /Opening Excel file
                 workbook = appExl.Workbooks.Open(Server.MapPath("firstexcel.xlsx"));
                 NwSheet = (Excel.Worksheet)workbook.Sheets.get_Item(1);
                 int Cnum = 0;
                 int Rnum = 0;

                  ShtRange = NwSheet.UsedRange; 

                //Reading Excel file.
                //Creating datatable to read the containt of the Sheet in File.
                  DataTable dt = new DataTable();
                   dt.Columns.Add("EMP NO");
                  dt.Columns.Add("NAME");
                  dt.Columns.Add("AGE");
                  dt.Columns.Add("PHN NO");
                  dt.Columns.Add("EMAIL");

                 for (Rnum = 2; Rnum <= ShtRange.Rows.Count; Rnum++)
                     {
                       DataRow dr = dt.NewRow();
              //Reading  Each Column value From sheet to datatable

              for (Cnum = 1; Cnum <= ShtRange.Columns.Count; Cnum++)
                    {
                     dr[Cnum - 1] = (ShtRange.Cells[Rnum, Cnum] as Excel.Range).Value2.ToString();
                    }
             // adding Row into DataTable
              dt.Rows.Add(dr); 
              dt.AcceptChanges();
                   }

              workbook.Close(true);
             appExl.Quit();
            //DataSource to GrigView
           gvOne.DataSource = dt;
           gvOne.DataBind();

             }

        }