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表的路径,点确定后

如下图

 

相关文章推荐

net读取excel中数据并显示到gridview中

net读取excel中数据并显示到gridview中

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

使用C#将Excel文件中数据导入SQL Server数据库

由于项目中加入了新的功能,可以使管理员向数据库中导入Excel数据。因此,在商品管理这块需要对Excel进行操作,在网上查了些资料,根据项目的实际情况进行了一定的优化,这里简单的介绍下。 C#代码 ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

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

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

C#读取Excel五种方式体会(二)

上一篇文章中,我们找到了三种处理的方式,分别对其优缺点进行了

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

1.方法一:采用OleDB读取EXCEL文件: 把EXCEL文件当做一个数据源来进行数据的读取操作,实例如下: public DataSet ExcelToDS(string Path) { st...
  • mao0514
  • mao0514
  • 2016年07月21日 08:36
  • 6710

C#开发——winform中将Excel数据导入DataGridView

using System; using System.Data; using System.Data.OleDb; using System.Windows.Forms; namespace Exc...

C#数据库数据导入导出系列之一 ASP.NET Excel导入Sql Server数据库

C#数据库数据导入导出系列之一 ASP.NET Excel导入Sql Server数据库 在日常的项目中,Excel,Word,txt等格式的数据导入到数据库中是很常见的,我在这里做一下总结 这里...
  • cpcpc
  • cpcpc
  • 2011年12月01日 09:11
  • 15905

C#创建Excel文件并将数据导出到Excel文件

C#创建Excel文件,这里实际上是从资源中提取一个事先创建好的Excel文件,文件提取成功后,使用OleDb方法连接Excel,向Excel文件中写入数据。创建解决方案菜单》新建》项目》Window...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#如何读取Excel表格数据并显示到GridView控件
举报原因:
原因补充:

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