asp net导入Excel表

一、导入Excel的界面

这个界面很简单,代码就不列出来了。
二、导入的代码
我分了两部分,第一部分是点击查看数据的代码,这个是将数据导入到DataTable里面,但是还没有导入到数据库里。这里需要注意的是当程序在服务器运行时,要先把导入的文件上传到服务器上,否则不能导入,会出现莫名奇妙的错误,为了改这个错误当初弄了好久,希望大家不要走我的弯路啊。如果是在自己的机器上就不用上穿文件。
第二部分是选择相应的表,然后将数据导入到表里面,这部分很简单。
1、


try

        


{
            InputDataBLL input 
= new InputDataBLL();
            
this.Label1.Text = “”;
            
if (this.FileUpload1.HasFile)
            
{
               
// string filename = this.FileUpload1.PostedFile.FileName.ToString().Trim();
                DataTable inputdt = new DataTable();
                
int len = this.FileUpload1.FileName.ToString().Trim().Length;
                string path = “~/temp/upfile/”+this.FileUpload1 .FileName .ToString ().Trim();
                path = Server.MapPath(path);
                
this.FileUpload1.SaveAs(path); //上传文件
                inputdt = input.InputExcel(path, this.FileUpload1.FileName.ToString().Trim().Substring(0, len – 4),this.TextBox1.Text.Trim ());

                
if (Session[inputdt!= null)
                    Session.Remove(
inputdt);
                Session.Add(
inputdt, inputdt);
                
if (inputdt.Rows.Count > 0)
                
{
                    
this.GridView1.DataSource = inputdt;
                    
this.GridView1.DataBind();
                }

            }

            
else
                
throw new Exception(请选择导入表的路径);
        }


        

catch
 (Exception ex)
        


{
            Response.Write(
<script language=‘javascript‘>alert(‘ + ex.Message + ‘);</script>);
        }

导入的函数



 
/**/
/// <summary>
    
/// 导入数据到数据集中
    
/// </summary>
    
/// <param name=”Path”></param>
    
/// <param name=”TableName”></param>
    
/// <param name=”tablename2″>如果这个有就以他为表名,没有的话就以TableName</param>
    
/// <returns></returns>




    
public
 DataTable InputExcel(
string
 Path,
string
 TableName,
string
 tablename2)
    


{
        
try
        
{
            
string strConn = Provider=Microsoft.Jet.OLEDB.4.0; + Data Source= + Path + ; + Extended Properties=Excel 8.0;;
            OleDbConnection conn 
= new OleDbConnection(strConn);
            conn.Open();
            
string strExcel = “”;
            OleDbDataAdapter myCommand 
= null;
            
if (tablename2.Length > 0 && !tablename2.Equals(string.Empty))
                TableName 
= tablename2;
            strExcel 
= select * from [ + TableName + $];
            myCommand 
= new OleDbDataAdapter(strExcel, strConn);
            DataTable dt 
= new DataTable();
            myCommand.Fill(dt);
            conn.Close();
            
return dt;
        }

        
catch (Exception ex)
        
{
            
throw new Exception(ex.Message);
        }

    }

二、将数据导入到数据库里
这部分其实很简单,就是插入数据。


 
if
 (
this
.DropDownList1.SelectedItem.Text.ToString().Equals(

Material

))
//
导物料


            

{
                
new StockBaseBLL().ISUserModel(物料导入, Response, Request, Server);
                MaterialBLL material 
= new MaterialBLL();
              
     foreach (DataRow row in inputdt.Rows)//inputdt为刚刚从函数中返回的数据源
                
{
                    
float MaterialPrice = 0.0f;
                    
float MaterialTaxPrice = 0.0f;
                    
float TaxRate = 0.0f;
                    
float Moneys = 0.0f;
                    
int temp=0;
                    
if (row[单价].ToString().Trim() != “”)
                        MaterialPrice 
= float.Parse(row[单价].ToString().Trim());
                    
if (row[含税单价].ToString().Trim()!=“”)
                        MaterialTaxPrice
=float.Parse(row[含税单价].ToString().Trim());
                    
if (row[税率].ToString().Trim()!=“”)
                        TaxRate
= float.Parse(row[税率].ToString().Trim());
                    
if (row[金额].ToString().Trim()!=“”)
                        Moneys
=float.Parse(row[金额].ToString().Trim());

                    
if (material.SelectMaterialsDynamic(MaterialID=‘ + row[物料长代码].ToString() + “”).Rows.Count <= 0//不存在,其实可以不要,因为编号是主键,如果相同则插不进去
                        temp = material.InsertMaterial(row[物料长代码].ToString(), row[物料名称].ToString(), row[单位].ToString().Trim(), MaterialPrice, MaterialTaxPrice, TaxRate, Moneys, 0);
                    
else
                        NotIntoID 
+= row[物料长代码].ToString()+,;
                    
if (temp > 0)
                            index 
+= temp;
                     temp 
= 0;
                }

            }

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow