在我们开发各类应用型系统,经常会遇到导入导出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. vim 命令详解

    vi: Visual Interface 可视化接口vim: VI iMproved VI增强版 全屏编辑器,模式化编辑器 vim模式: 编辑模式(命令模式) 输入模式 末行模式 模式转换: 编辑-- ...

  2. C# XML技术总结之XDocument 和XmlDocument

    引言 虽然现在Json在我们的数据交换中越来越成熟,但XML格式的数据还有很重要的地位. C#中对XML的处理也不断优化,那么我们如何选择XML的这几款处理类 XmlReader,XDocument ...

  3. Java读带有BOM的UTF-8文件乱码原因及解决方法

    原因: 关于utf-8编码的txt文件,windows以记事本方式保存时会在第一行最开始处自动加入bom格式的相关信息,大概三个字节! 所以java在读取此类文件时第一行时会多出三个不相关的字节,这样 ...

  4. Java的String中的subString()方法

    方法如下: public String substring(int beginIndex, int endIndex) 第一个int为开始的索引,对应String数字中的开始位置, 第二个是截止的索引 ...

  5. Nim游戏

    目前有3堆石子,每堆石子个数也是任意的,双方轮流从中取出石子,规则如下:1)每一步应取走至少一枚石子:每一步只能从某一堆中取走部分或全部石子:2)如果谁不能取谁就失败. Bouton定理: 必败状态当 ...

  6. NOIP模拟赛20161016R2

    Problem 1 护花(flower.cpp/c/pas) [题目描述] 约翰留下他的N(N<=100000)只奶牛上山采木.他离开的时候,她们像往常一样悠闲地在草场里吃草.可是,当他回来的时 ...

  7. POJ1962Corporative Network[带权并查集]

    Corporative Network Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 3945   Accepted: 14 ...

  8. iOS 2D绘图 (Quartz2D)之阴影和渐变(shadow,Gradient)

    原博地址:http://blog.csdn.net/hello_hwc/article/details/49507881 Shadow Shadow(阴影) 的目的是为了使UI更有立体感,如图 sha ...

  9. 一份关于Swift语言学习资源的整理文件

    一份关于Swift语言学习资源的整理文件     周银辉 在这里下载 https://github.com/ipader/SwiftGuide

  10. JavaScript toLowerCase() 方法 把字符串转换为小写

    定义和用法 toLowerCase() 方法用于把字符串转换为小写. 语法 stringObject.toLowerCase() 返回值 一个新的字符串,在其中 stringObject 的所有大写字 ...