码迷,mamicode.com
首页 > Web开发 > 详细

asp net导入Excel表

时间:2019-01-20 17:27:01      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:数据集   幽默   莫名奇妙   ons   usermode   tar   none   ssi   count   

一、导入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

asp net导入Excel表

标签:数据集   幽默   莫名奇妙   ons   usermode   tar   none   ssi   count   

原文地址:https://www.cnblogs.com/swdhywhd/p/10295345.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!