在我们开发各类应用型系统,经常会遇到导入导出Excel,为什么会用到他呢?企业或者单位在从无信息化到信息化的一个转变过程。在没有信息化的企业或单位之前,一般都采用Excel来记录相应的数据,做统计计算的作用,那么当企业或单位实施信息化之后必然会将原有数据导入到系统中去存储与分析。那么作为程序员就必然面临一个将数据导入数据库的功能,下面针对此类情况作如下概述。

在ASP.NET的B/S架构下,去导入Excel。

举例来说:

我们需要导入员工信息表到数据库中。Excel格式如下:

那么在我们了解了这个之后,下面就是在ASP.NET中通过button来触发导入事件的发生。

protected void btnChange_Click(object sender, EventArgs e)
        {
            UserInfoClass tClass = (UserInfoClass)Session["UserInfo"];
            string tLanguageType = tClass.Language;
//获取文件路径
            string filePath = this.file1.PostedFile.FileName;
            if (filePath != "")
            {
                if (filePath.Contains("xls"))//判断文件是否存在
                {
                    InputExcel(filePath);
                }
                else
                {
                    MessageBox.Show("请检查您选择的文件是否为Excel文件!谢谢!");
                }
            }
            else
            {
                MessageBox.Show("请先选择导入文件后,再执行导入!谢谢!");
            }
        }
        private void InputExcel(string pPath)
        {
            string conn = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + pPath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
            OleDbConnection oleCon = new OleDbConnection(conn);
            oleCon.Open();
            string Sql = "select * from [Sheet1$]";
            OleDbDataAdapter mycommand = new OleDbDataAdapter(Sql, oleCon);
            DataSet ds = new DataSet();
            mycommand.Fill(ds, "[Sheet1$]");
            oleCon.Close();
            int count = ds.Tables["[Sheet1$]"].Rows.Count;
            ; i < count; i++)
            {
                string tUserID, tUserName, tDept, tEmail, tLeader, tAngent;
                tUserID = ds.Tables["[Sheet1$]"].Rows[i]["員工代號"].ToString().Trim();
                tUserName = ds.Tables["[Sheet1$]"].Rows[i]["員工姓名"].ToString().Trim();
                tDept = ds.Tables["[Sheet1$]"].Rows[i]["所屬部門代號"].ToString().Trim();
                tEmail= ds.Tables["[Sheet1$]"].Rows[i]["E-Mail Address"].ToString().Trim();
                tLeader = ds.Tables["[Sheet1$]"].Rows[i]["直属主管"].ToString().Trim();
                tAngent = ds.Tables["[Sheet1$]"].Rows[i]["代理人"].ToString().Trim();
                string excelsql = "insert into " + this.UserInfo.Company + "..[resak] (resak001, resak002, resak015,resak005,resak013,resak009) values ('" + tUserID + "','" + tUserName + "','" + tDept + "','" + tEmail + "','" + tLeader + "','" + tAngent + "')";
                DBCommand cmd = DscDBData.GetDataDBCommand();
                cmd.ExeNonQuery(excelsql);
            }
        }

  当然此部分内容拿过来要稍作修改,比如最后的执行Insert语句的部分,等内容。上面完成了ASP.NET下导入Excel到数据库的功能。接下来如果你希望直接将Excel在SQL语句中导入到数据库,实现方式如下:

SELECT * INTO PURTCFROM   OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=D:\12.xls',sheet1$)
注意将Excel中的栏位与表中栏位对应Ok的话,即可!

.NET导入Excel到SQL数据库的更多相关文章

  1. ASP.NET导入Excel到SQL数据库

    protected void btnChange_Click(object sender, EventArgs e) { UserInfoClass tClass = (UserInfoClass)S ...

  2. 利用kettle组件导入excel文件到数据库

    利用kettle组件导入excel文件到数据库 1.     实现目标 把excel文件内容导入到目标表中:然后用java调用kettle的转换.excel文件的内容仅仅有两列,示比例如以下: wat ...

  3. 【转】 如何导入excel数据到数据库,并解决导入时间格式问题

    在办公环境下,经常会用到处理excel数据,如果用写程序导入excel数据到数据库那就太麻烦了,涉及解析excel,还要各种格式问题,下面简单利用数据库本身支持的功能解决这类导入问题. 准备 创建表 ...

  4. 导入excel数据到数据库

    1.上传excel到服务器 jsp页面代码 <form action="actionname" method="post" id="form1& ...

  5. 从接口取到的JSON数据如何导入进本地SQL数据库

    新手学习,求大神指点. 首先:在数据库建立表--设计字段(最好和接口说明文档里面的一致) 第一步:获取接口中的字符串:这里获取的是有转义字符的字符串 HttpWebRequest request = ...

  6. PHP 导入Excel数据 到数据库

    /** * 导入excel * @throws \PHPExcel_Exception * @throws \PHPExcel_Reader_Exception */ public function ...

  7. 定时从多个Excel导入数据到SQL数据库

    Scheduling Data Imports in SQL Server Importing data into a SQL Server database isn't really that tr ...

  8. Web服务器与数据库服务器分离 导入 Excel数据至数据库

    一般情况一般项目WEB服务器与数据库均部署在一台服务器,文件上传,数据导入在一台服务器完成.web服务器与数据库服务器分离,文件上传与数据导入将分布在两台服务器或多台服务器之间.本案例为两台服务器,具 ...

  9. asp.net 导入Excel记录到数据库中

    常用到的一个数据库导入功能,这样的话就省了很大一部分时间来处理程序上的问题而不是无休止的重复复制粘贴动作. 其他的废话不多说,直接上代码: 前提条件: 根目录下建立uploadfiles文件夹(用于保 ...

随机推荐

  1. 转载:SqlServer数据库性能优化详解

    本文转载自:http://blog.csdn.net/andylaudotnet/article/details/1763573 性能调节的目的是通过将网络流通.磁盘 I/O 和 CPU 时间减到最小 ...

  2. UVALive 4998 Simple Encryption --DFS

    题意: 给出K1,求一个12位数(不含前导0)K2,使得K1^K2 mod (10^12) = K2. 解法: 求不动点问题. 有一个性质: 如果12位数K2满足如上式子的话,那么K2%1,K2%10 ...

  3. BZOJ 1096: [ZJOI2007]仓库建设 [斜率优化DP]

    1096: [ZJOI2007]仓库建设 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4201  Solved: 1851[Submit][Stat ...

  4. COGS247. 售票系统[线段树 RMQ]

    247. 售票系统 ★★☆   输入文件:railway.in   输出文件:railway.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 某次列车途经C个城市,城市 ...

  5. Confluence Wiki -- 页面限制

    Confluence Wiki 中 [页面设置] 应该如何理解? 当一个用户有这个权限后,这个用户可以对一个页面做限制,可以限制这个页面不能被其他用户浏览或编辑: 反之,如果没有这个权限,那么这个用户 ...

  6. window.open和window.location.href的几种用法

    windows.open("URL","窗口名称","窗口外观设定"); <A href="javascript:windo ...

  7. ZigZag Conversion leetcode java

    题目: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows l ...

  8. FineUI官方论坛出现空白页的解决办法!

    问题描述:访问FineUI官方论坛或者QQ互联登陆时,可能会出现空白页面!   解决办法:清空站点Cookie!     下面分别介绍Chrome.Firefox.IE下清空站点Cookie的方法: ...

  9. 吉特仓储管系统(开源WMS)--分享两月如何做到10W+的项目

    在此文开篇之处先特别申明,此文在有些人的眼中会有广告的嫌疑,但是本人不想将其作为一个广告宣传的文章,在此提到软件内容部分请大家予以谅解和包含,作为时间不算短的程序员给大家分享一些自己开发吉特仓储管理软 ...

  10. Android开发自学笔记(Android Studio)—4.4 AdapterView及其子类

    一.引言       AdapterView本身是一个抽象类,而它派生的子类在用法上也基本相似,只是在显示上有一定区别,因此把他们也归为一类.       AdapterView具有如下特征: Ada ...