C#如何读取Excel表格数据并显示到GridView控件

原创 2007年12月25日 22:51:00

近日,有个项目,需要用Web形式将Excel表格中的数据导入到数据库中,为了简化问题的解决,现在先将表中数据导入到GridView控件上.

代码如下:

protected void Button1_Click(object sender, EventArgs e)
    
...{
        
string filepath=FileUpload1.PostedFile.FileName;
        ReadExcel(filepath, gdBom);
    }

    
public void ReadExcel(string sExcelFile,GridView dgBom)
    
...{
        DataTable ExcelTable;
        DataSet ds 
= new DataSet();
        
//Excel的连接
        OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sExcelFile + ";" + "Extended Properties=Excel 8.0;");
        objConn.Open();
        DataTable schemaTable 
= objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
        
string tableName = schemaTable.Rows[0][2].ToString().Trim();//获取Excel的表名,默认值是sheet1
        string strSql = "select * from [" + tableName + "]";
        OleDbCommand objCmd 
= new OleDbCommand(strSql, objConn);
        OleDbDataAdapter myData 
= new OleDbDataAdapter(strSql, objConn);
        myData.Fill(ds, tableName);
//填充数据

        dgBom.DataSource 
=ds;
        dgBom.DataBind();
        objConn.Close();
       
        ExcelTable 
= ds.Tables[tableName];
        
int iColums = ExcelTable.Columns.Count;//列数
        int iRows = ExcelTable.Rows.Count;//行数

        
//定义二维数组存储Excel表中读取的数据
        string[,] storedata = new string[iRows, iColums];
     
        
for(int i=0;i<ExcelTable.Rows.Count;i++)
            
for (int j = 0; j < ExcelTable.Columns.Count; j++)
            
...{
                
//将Excel表中的数据存储到数组
                storedata[i, j] = ExcelTable.Rows[i][j].ToString();
 
            }

        
int excelBom = 0;//记录表中有用信息的行数,有用信息是指除去表的标题和表的栏目,本例中表的用用信息是从第三行开始
        
//确定有用的行数
        for (int k = 2; k < ExcelTable.Rows.Count; k++)
            
if (storedata[k, 1!= "")
                excelBom
++;
        
if (excelBom == 0)
        
...{
            Response.Write(
"<script language=javascript>alert('您导入的表格不合格式!')</script>");
        }

        
else
        
...{
            
//LoadDataToDataBase(storedata,excelBom)//该函数主要负责将storedata中有用的数据写入到数据库中,在此不是问题的关键省略 
        }


    }

 运行效果如下图:选择BOM表的路径,点确定后

如下图

 

C#读取Excel表格中内容并显示在DataGridView控件中

private void button1_Click(object sender, EventArgs e) { string filename = null; if (ofd.ShowDialog(...
  • u012557538
  • u012557538
  • 2014-11-11 21:59:35
  • 1398

c#操作Excel并显示到控件上

  • 2011年01月01日 23:44
  • 166KB
  • 下载

C#程序从Excel表格中读取数据并进行处理

今天做了一个Excel表格数据处理的事情,因为数据量表较大(接近7000条)所以处理起来有点麻烦,于是写了一个程序, 先将程序记下以便将来查找。 using System; using Syste...
  • finish_dream
  • finish_dream
  • 2015-11-28 20:56:37
  • 4122

C# 读取EXCEL文件的三种经典方法

1.方法一:采用OleDB读取EXCEL文件:  把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下:  public DataSet ExcelToDS(string Path) { ...
  • fuzhenglai
  • fuzhenglai
  • 2016-11-14 13:45:20
  • 7730

C#将excel导入导出至dataGridView并显示

  • 2009年09月18日 09:29
  • 151KB
  • 下载

C#Winform实现高效率导入和导出Excel文件

/// /// 导出Excel文件 /// /// /// /// 数据集 /// 导出后是否打开文件 ...
  • pp_fzp
  • pp_fzp
  • 2016-05-25 22:07:49
  • 8546

C#下使用第三方开源控件读取Excel文件的内容

使用了两个开源控件(NPOI + EPPlus) 读取Excel文件(03 xls 及07 xlsx)的内容,不需要安装Excel或Office,...
  • rrrrssss00
  • rrrrssss00
  • 2011-07-07 17:35:13
  • 14586

GridView导出Excel的超好例子

其实网上有很多关于Excel的例子,但是不是很好,他们的代码没有很全,读的起来还很晦涩。经过这几天的摸索,终于可以完成我想要导出报表Excel的效果了。下面是我的效果图。 一.前台的页面图 ...
  • hwt0101
  • hwt0101
  • 2014-08-18 10:41:57
  • 2287

C#实现excel导入到sql server 2008(.net版)

本来想把导入数据库后的数据通过gridview控件全部显示到界面,因为一旦进入页面所有控件的已经初始化好了,所以必须使用刷新数据源或用代码实现不用控件来绑定数据源,某位实现了这个功能可以发表下自己的意...
  • jpday
  • jpday
  • 2013-08-12 09:04:16
  • 15104

实现GridView中的数据的打印和导出到Excel

MSDN上对 VerifyRenderingInServerForm 方法的解释是:  必须位于 标记中的控件可以在呈现之前调用此方法,以便在控件被置于标记外时显示错误信息。发送回或依赖于注册的脚本...
  • hackhu
  • hackhu
  • 2008-02-01 23:15:00
  • 1648
收藏助手
不良信息举报
您举报文章:C#如何读取Excel表格数据并显示到GridView控件
举报原因:
原因补充:

(最多只允许输入30个字)