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

本文介绍了一个使用C#将Excel表格数据读取并展示到GridView控件上的项目案例。通过选择Excel文件路径,数据能够成功导入并显示。

近日,有个项目,需要用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表的路径,点确定后

如下图

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值