博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
完整ASP.Net Excel导入
阅读量:5037 次
发布时间:2019-06-12

本文共 2198 字,大约阅读时间需要 7 分钟。

  //把EXCEL文件上传到服务器并返回文件路径

        private String typename(FileUpload fileloads)
        {
            string fullfilename = fileloads.PostedFile.FileName;
            string filename = fullfilename.Substring(fullfilename.LastIndexOf("\\") + 1);
            string type = fullfilename.Substring(fullfilename.LastIndexOf(".") + 1);
            string murl = "";
            if (type == "xls" || type == "xlsx")
            {
                fileloads.PostedFile.SaveAs(Server.MapPath(filename));
                //fileloads.PostedFile.SaveAs(Server.MapPath(Tools.GetAppSettings("ExcelPath")) + "\\" + filename);
                murl = Server.MapPath(filename);
            }
            else
            {
                Tools.ShowMsg("导入文件格式不对!");
                //Response.Write("<script language='javascript'>alert('导入文件格式不对!');</script>");
            }
            return murl;
        }

        public DataTable ImportToDataSet(string path) 

        {
            string strConn = "Provider=Microsoft.Ace.OleDb.12.0;" + "Data Source=" + path + ";" + "Extended Properties='Excel 12.0;HDR=Yes;IMEX=1';";

            OleDbConnection conn = new OleDbConnection(strConn);  

            try 
            {  
                DataTable dt = new DataTable();  
                if (conn.State != ConnectionState.Open)  
                    conn.Open();  
                string strExcel = "select * from [Sheet1$]";  
                OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, conn);  
                adapter.Fill(dt);  
                return dt;  
            }  
            catch (Exception ex)  
            {  
                throw new Exception(ex.Message);  
            }  
            finally 
            {  
                if (conn.State != ConnectionState.Closed)  
                    conn.Close();  
            }  
        } 

        protected void btnImport_Click(object sender, EventArgs e)

        {
            try
            {
                DataTable dt = ImportToDataSet(typename(selectfile));
                int j = 0;
                bool sec = true;
                
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    ShippingCharge sc = new ShippingCharge();
                    string RegionID = dt.Rows[i][1].ToString();
                    if (!RegionID.IsNullOrEmpty() && Service.GetShippingRegion(dt.Rows[i][1].ToString()) != null)
                    {
                        sc.RegionID = Service.GetShippingRegion(dt.Rows[i][1].ToString()).RegionID;
                    }

                    sc.Status = Convert.ToByte(dt.Rows[i][2].ToString()=="否"?0:1);

                    sec = Service.AddShippingCharge(sc);

                    if (sec == false)
                    {
                        j++;
                    }
                }
                
                if(j > 0)
                {
                    Tools.ShowMsg("导入文件失败,请确认文件格式再重试一次!");
                }
                else
                {
                     //关闭,删除 文件  
                    string filepath = Server.MapPath(selectfile.PostedFile.FileName);
                    if (File.Exists(filepath))
                        File.Delete(filepath);  
                    Tools.ShowMsg("导入文件成功!", "ShippingCharges_List.aspx");
                }
            }
            catch (Exception ex)
            {
                Tools.ShowMsg("导入文件失败,请确认文件格式再重试一次!");

            }

        }

转载于:https://www.cnblogs.com/Echo529/p/6386642.html

你可能感兴趣的文章
AngularJS学习篇(一)
查看>>
【转载】 IP实时传输协议RTP/RTCP详解
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
Linux系统的数据写入机制--延迟写入
查看>>
css3动画——基本准则
查看>>
SQLite详解,案例,手册
查看>>
创建自己的内容提供器
查看>>
SSRS 数据源访问Cube 无法创建订阅的解决方法
查看>>
Spring之SpringMVC
查看>>
[转载]限制排列与棋盘多项式{理论}
查看>>
cookie、session 整理
查看>>
js 设计模式——观察者模式
查看>>
[nowcoder]再编号
查看>>
redis学习小结
查看>>
pku 3041 Asteroids 二分图匹配——匈牙利算法求最小点覆盖
查看>>
天津赛区总结
查看>>
解决无法正常启动Oracle OEM控制台
查看>>
Flume采集Nginx日志到HDFS
查看>>
205. Isomorphic Strings
查看>>
C++ 类的两种定义方式
查看>>