精华内容
下载资源
问答
  • 主要介绍了thinkPHP实现将excel导入到数据库中的方法,涉及thinkPHP结合PHPExcel插件操作excel与数据库的相关技巧,需要的朋友可以参考下
  • python将excel自适应导入数据库

    万次阅读 2021-01-28 22:09:34
    python 将excel导入数据库 功能如下: excel每个sheet自动导入数据库,以sheet名称为表名在数据库创建表; 每个sheet的数据添加至数据库对应表;默认以第一行为该表的列表名,其它行作为数据; 查找数据...

    python 将excel导入数据库

    功能如下:

    1. 将excel中每个sheet自动导入数据库,以sheet名称为表名在数据库中创建表;
    2. 将每个sheet中的数据添加至数据库对应表中;默认以第一行为该表的列表名,其它行作为数据;
    3. 查找数据中存在的表文件名;
    4. 查找数据库中某表的说有数据;
    5. 向数据库某表中添加数据;
    6. 自适应创建表;

    小结:

    使用python sqlite创建表,查看表数量及名称,查看表的列表名称,查看表的内容,表数据插入;

    代码如下:

    # This is a sample Python script.
    
    # Press Shift+F10 to execute it or replace it with your code.
    # Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
    import xlrd
    import sqlite3
    import pprint
    
    
    # 连接数据库
    def connect_db(file_path):
        conn = sqlite3.connect(file_path)
        return conn
    
    
    # 获取数据库中所有表的名字
    def get_tables(conn):
        sql = "SELECT * FROM sys.Tables"
        cursor = conn.cursor()
        # 获取表名
        cursor.execute("SELECT name FROM sqlite_master WHERE type='table'")
        tables = [tuple[0] for tuple in cursor.fetchall()]
        print(tables)
        return tables
    
    
    # 获取数据库中,表table_name 的表头信息,列名称
    def get_desc(conn, table_name):
        cursor = conn.cursor()
        sql1 = "select * from {}".format(table_name)
        cursor.execute(sql1)
        col_name_list = [tuple[0] for tuple in cursor.description]
        sql = "("
        for index in col_name_list:
            sql += index + ","
        ret = sql[:-1] + ")"
        return ret
    
    
    # 显示数据库中表table_name 的所有元素
    def show_table(conn, table_name):
        cursor = conn.cursor()
        sql = "select * from {}".format(table_name)
        cursor.execute(sql)
        pprint.pprint(cursor.fetchall())
    
    
    # 创建数据库,table_items 为 table_name 中列名称,即表头信息
    def create_table(conn, table_name, table_items):
        sqlline = "create table {} (".format(table_name)
        for i in table_items:
            sqlline += i + " text,"
        sql_line = sqlline[:-1] + ")"
        cursor = conn.cursor()
        cursor.execute(sql_line)
        conn.commit()
    
    
    # 数据库文件插入,content_items 为需要插入表 table_name 的数据信息
    def insert_data(conn, table_name, content_items):
        sql = ''' insert into {} 
        {}
        values ('''.format(table_name, get_desc(conn, table_name))
        for index in content_items:
            sql += str(index) + ","
        ret = sql[:-1] + ")"
        cursor = conn.cursor()
        cursor.execute(ret)
        conn.commit()
    
    
    #数据库中table_name表中查找 table_head = table_content 的项
    def find_data(conn, table_name, table_head, table_content):
        sql = "select {table_head} from {table_name} where {table_head} = {table_content}".format(table_head=table_head,
                                                                                                  table_name=table_name,
                                                                                                  table_content=table_content)
        cursor = conn.cursor()
        cursor.execute(sql)
        pprint.pprint(cursor.fetchone())
    
    
    # 读取exel表格,并在数据库中创建该表
    def read_exel(file_path, conn):
        if not file_path.endswith("xlsx"):
            print("path_wrong")
        # 获取一个Book对象
        book = xlrd.open_workbook(file_path)
        # 获取一个sheet对象的列表
        sheets = book.sheets()
        for sheet in sheets:
            sheet_name = sheet.name
            # 获取表行数
            rows = sheet.get_rows()
            for index, row in enumerate(rows):
                table_items = [tuple.value for tuple in row]
                print(table_items)
                if index == 0:
                    # 默认第一行为表头信息,在数据库中创建该表
                    create_table(conn, sheet_name, list(table_items))
                else:
                    # 将次sheet中的每一行都插入数据库中
                    insert_data(conn, sheet_name, table_items)
            show_table(conn, sheet_name)
    
    
    def main():
        # Use a breakpoint in the code line below to debug your script.
        conn = connect_db("test.db")
        table = get_tables(conn)
        find_data(conn,table[0],"测试",2.0)
        show_table(conn,table[0])
        # file_path = "test.xlsx"
        # read_exel(file_path, conn[0])
        conn.close()
    
    
    # Press the green button in the gutter to run the script.
    if __name__ == '__main__':
        main()
    
    

    使用工具:

    xlrd
    python 安装 xlrd 注意事项,如果直接使用:

    pip install xlrd
    

    可能会遇到,打开excel表格失败

    最简单避免使用xlrd错误的安装方式为:

    pip install pip install xlrd==1.2.0
    
    展开全文
  • excel导入到数据库中的java代码 excel导入到数据库中的java代码 excel导入到数据库中的java代码 excel导入到数据库中的java代码 excel导入到数据库中的java代码 excel导入到数据库中的java代码
  • 在Excel录入好数据以后就需要导入...如何将excel导入oracle数据库的教程:导入oracle数据库步骤1:oracle数据库有一个student表,现有一个excel表:student.xlsx,需导入oracle数据库student表。导入oracle数据...

    在Excel中录入好数据以后就需要导入到oracle数据库,或许有些朋友不知道该如何做。下面是学习啦小编带来的关于如何将excel导入oracle数据库的教程,欢迎阅读!

    如何将excel导入oracle数据库的教程:

    导入oracle数据库步骤1:oracle数据库有一个student表,现有一个excel表:student.xlsx,需导入oracle数据库student表中。

    导入oracle数据库步骤2:student表的拥有者是system,system密码为test

    f4cfd36ba144d7cf5c99c145bd1fb1ab.png

    3911cfec96e073d3ec15bb7613112ffa.png

    导入oracle数据库步骤3:打开需导入的excel表格,单击office按钮,选择另存为--其他格式

    导入oracle数据库步骤4:选择保存路径(置于D:\),保存类型CSV(逗号分隔)(*.csv),设置文件名为student.csv,单击保存

    d789671d103f7c4b4b11503a62fedf6b.png

    219e6e1a89567934529952e27722cc6e.png

    导入oracle数据库步骤5:新建input.ctl文件(置于D:\),内容为:

    load data

    infile 'd:\student.csv'

    append into table student fields terminated by ','

    trailing nullcols(id,name,sex,age)

    说明:infile后面参数为欲导入的excel表(已转换成csv格式)路径及名称;append在表后追加;table后面跟oracle数据库中的表名称; terminated by ','表示字段分隔符;(id,name,sex,age)表示字段名称列表

    2088a89a2b7cf1ad17cd42042bed97ba.png

    导入oracle数据库步骤6:同时按Windows徽标键和R键,打开运行,输入cmd,打开命令提示符,输入命令:

    sqlldr userid=system/test@netservicename control=d:\input.ctl

    说明:system/test,为oracle数据库表student的所有者及其密码;

    @ netservicename为网络服务名;

    control是input.ctl文件名称及路径

    d0f37d7fd0eae937f221be472db90394.png

    导入oracle数据库步骤7:进入oracle数据库,查询student表,excel已导入成功

    7fc2870c4e611258891e63ac5ff46ec4.png

    展开全文
  • Delphi将excel数据导入到数据库中源码

    热门讨论 2012-05-11 17:09:14
    Delphi将excel数据导入到数据库中的源码,是将excel的数据导入到数据库中users表的完整代码,使用时要添加ComOBJ单元,希望能帮助大家。
  • Django将Excel导入到数据库

    千次阅读 2019-06-01 14:41:00
    Django将Excel导入到数据库 posted on 2019-06-01 14:41 女己。 阅读(...) 评论(...) 编辑 收藏 var allowComments=true,cb_blogId=518617,cb_entryId=...

    posted on 2019-06-01 14:41 女己。 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/wyf2019/p/10959569.html

    展开全文
  • 该压缩包搜集了比较完整的如何将数据库中的数据导出到Excel中或者将Excel中的数据导入到数据库中的实例。
  • 将Excel文件导入到数据库中

    千次阅读 2019-06-24 10:02:03
    要实现这个功能的第一步就是将Excel导入到数据库。 下面总结一下将Excel导入到数据库的具体步骤。(java程序) 1:明确所需要的类 这里我使用了三个类: Ⅰ:DBUtil类。这个类是个工具类,主要负责,连接数据库...

    今天公司让实现两个Excel文件通过某种特定的规则合并成一个文件。要实现这个功能的第一步就是将Excel导入到数据库之中。
    下面总结一下将Excel导入到数据库的具体步骤。(java程序)

    1:明确所需要的类
    这里我使用了三个类:
    Ⅰ:DBUtil类。这个类是个工具类,主要负责,连接数据库、搜索……等操作数据库的行为。
    Ⅱ:InputExcel类。这个类的主要作用是负责上传,解析Excel表等对Excel表进行‘预操作’的行为
    Ⅲ:Model类。这个类是一个模型,里面全是get()、set()方法等。主要起一个‘桥梁’的作用。

    这样我们就可以将InputExce类中方法获得的数据通过Model传给数据库,也可以将数据库的数据传给Model,再来获取这些数据。

    2:明确需要的jar包和相关的知识
    对Excel进行操作的的方法有两种,这两种方法对应的jar包各不相同。这里我们使用‘jxl’来对Excel进行操作。因此我们需要“jxl.jar”这个包,找不到的话可以去maven的网站上直接下载就行。

    简单说下jxl的基本对象代表的相应含义:

    Workbook 这个对象代表的是整个Excel文件。例如:Workbook a=Workbook.getWorkbook(new File(“相应的文件路径”))。此时对象a便可以近似的看作是这个Excel文件。
    Sheet 这个对象代表的是当前文件下的第几个工作簿。例如:Sheet rs=a.getSheet(0);此时rs便代表第一个工作簿。
    Cell 代表的是当前工作簿下的某个表格。例如Cell cel=rs.getCell(0,2);此时cel代表的是第1列第3行的那个表格。(注:Excel表中的第一列是前面的数字,第一行是最上面的字母。)随后便可以通过cel.getContents().方法来获取该表格中的数据。

    3:写代码

    Model的代码不必多说,下面是我的Model代码:

    public class K3Model {
    	String id;
    	String name;	
    	String typeString;
    	String number;
    	String status;	
        public K3Model(String id,String name,String typeString,String number,String status) {
    		// TODO Auto-generated constructor stub
        	
        	this.id=id;
        	this.name=name;
        	this.typeString=typeString;
        	this.number=number;
        	this.status=status;
    	}
    	public String getId() {
    		return id;
    	}
    	public void setId(String id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getTypeString() {
    		return typeString;
    	}
    	public void setTypeString(String typeString) {
    		this.typeString = typeString;
    	}
    	public String getNumber() {
    		return number;
    	}
    	public void setNumber(String number) {
    		this.number = number;
    	}
    	public String getStatus() {
    		return status;
    	}
    	public void setStatus(String status) {
    		this.status = status;
    	}
    	@Override
    	public String toString() {
    		return "K3Model [id=" + id + ", name=" + name + ", typeString=" + typeString + ", number=" + number
    				+ ", status=" + status + "]";
    	}
    }
    
    

    DBUti类,下面是我的代码实现

    package cn.wintec.util;
    
    import java.sql.*;
    public class DBhelper {
    	
    	Connection conn=null;
    	ResultSet rSet=null;
    	
    	public void connect(){
    		try {
    			//这里输入相应的驱动名称(你用的mysql就输入mysql的,用的sqlsever的就输入sqlsever的。别忘了装上相应驱动的jar包)
    			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    			//这里用来输入相应的连接ip与对应数据库的账号密码。			conn=DriverManager.getConnection("jdbc:sqlserver://192.122.11.221:1433;DatabaseName=k3excel;IntegratedSecurity=false","username","password");			
    		} catch (ClassNotFoundException e) {
    			// TODO: handle exceptio
    			System.out.println("数据库驱动不可用");
    			e.printStackTrace();						
    		}catch (SQLException e) {
    			// TODO: handle exception
    			System.out.println("连接大失败!!");			
    			e.printStackTrace();
    			}		
    	}
    	public ResultSet  Search(String sql,String str[]) {
    	/*这里不能用连接函数,因为我们Search往往不会仅仅只调用一次。如果我们的数据比较多的话就会不断的重复调用该方法,最后会导致数据库分配过多而拒绝访问。下面的也是同理*/
    		//connect();
    		try {
    		//这里我们将带有‘?’	的失去了语句压入PreparedStatement对象。
    			PreparedStatement pst=conn.prepareStatement(sql);			
    			for (int i = 0; i <= str.length-1; i++) {
    			//这里我们将相对应的‘?’匹配上字符。第一个参数表示的是第几个‘?’进行匹配,第二个参数表示匹配的内容。
    				pst.setString(i+1,str[i]);
    			}
    			//executeQuery();用于insert、update、delete等方法的执行,但是不能用于select的执行。
    			rSet=pst.executeQuery();
    		} catch (Exception e) {
    			// TODO: handle exception
    			//e.printStackTrace();
    			System.out.println("搜索错误");
    		}		
    		return rSet;	
    	}
    	
    	public int Addu(String sql ,String str[]){
    		int a=-1;
    		//不能放在这里,因为会出现连接次数过多从而导致程序崩溃
    		//connect();	
    		try {
    		//同上理
    		PreparedStatement pStatement=conn.prepareStatement(sql);
    		if (str!=null) {
    				for (int i = 0; i <= str.length-1; i++) {
    					//同上理
    					pStatement.setString(i+1,str[i]);		
    				}
    			}
    			//executeUpdate();负责执行select的SQL语句。
    			a=pStatement.executeUpdate();
    		} catch (Exception e) {
    			// TODO: handle exception
    			System.out.println("SQL语句出现错误"+a);
    			e.printStackTrace();		
    		}		
    		return a;
    	}		
    }
    
    

    InputExcel类,下面是我的代码实现

    package cn.com.wintec.controller;
    
    import java.io.File;
    import java.io.IOException;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.List;
    
    import cn.com.wintec.entity.K3Model;
    import cn.wintec.util.DBhelper;
    import jxl.Sheet;
    import jxl.Workbook;
    import jxl.read.biff.BiffException;
    
    
    //负责数据中的各种操作
    public class InputExcel {
    
    	//这个方法用于获得数据库中的数据
    	public static List<K3Model> getAllByDb() {
    		//将获得的数据用Model类存储起来。
    		List<K3Model> list=new ArrayList<K3Model>();	
    		//创建对数据库操作的工具类
    		DBhelper db=new DBhelper();
    		String sql="select * from TMPITEM";
    		//连接数据库
    		db.connect();
    		//执行相应的sql语句,将select的搜索集合使用ResultSet对象接收。
    		ResultSet rSet=db.Search(sql, null);
    		try {
    			//遍历ResultSet对象
    			while (rSet.next()){
    			//根据数据库中的列名获取相应的数据。(使用的get方法要对应相应的类型)
    				String id=rSet.getInt("id");
    				String name=rSet.getString("name");
    				String typeString=rSet.getString("typeString");
    				String number=rSet.getString("number");
    				String status=rSet.getString("status");
    				//将获取的数据添加到Model对象的list里。
    				list.add(new K3Model(id, name, typeString, number, status));				
    			}
    		} catch (Exception e) {
    			// TODO: handle exception
    		}
    		//返回搜索到的所有数据
    		return	list;
    	}
    	
    
    	//这个方法用于获取Excel表中的数据(但是不将其存入数据库)
    	public static List<K3Model> getAllByExcel(String file){
    	//list对象
    		List<K3Model> list =new ArrayList<K3Model>();
    		try {
    		    //创建excel表对象
    			Workbook rwb=Workbook.getWorkbook(new File(file));
    		   //创建工作表对象	
    			Sheet rs=rwb.getSheet(0);
         		//获取工作表的行数
    			int clos=rs.getColumns();
    			//获取工作表的列数
    			int rows=rs.getRows();
    	
    			for (int i = 1; i < rows; i++) {
    				int j=0;
    				//获取第二列第二行(也就是第一个表格)的数据。
    				String id=rs.getCell(j++,i).getContents();
    				//获取第三列第二行(也就是第二个表格)的数据。
    				String name=rs.getCell(j++,i).getContents();
    				String typeString=rs.getCell(j++,i).getContents();
    				String number=rs.getCell(j++,i).getContents();
    				String status=rs.getCell(j++,i).getContents();				
    			//	System.out.println("id:"+id+"  name:"+name+" typeString:"+typeString+" num:"+number+" status:"+status);
    			//将相应的数据放入Model的list中
    				list.add(new K3Model(id, name, typeString, number, status));
    			}			
    		} catch (IOException e) {
    			System.out.println("文件读取出现问题");
    			// TODO: handle exception
    		} catch (BiffException e) {
    			// TODO Auto-generated catch block
    			System.out.println("JXL使用出现问题");
    		}	
    		return list;
    	}
    
    //这个类起的是一个判断作用,输入的id是否存在在数据库之中
    	public static boolean isExist(String id,DBhelper dBhelper){
    		try {
    			//使用上面的Serch方法来返回一个搜索结果
    			ResultSet rSet=  dBhelper.Search("select * from TMPITEM where FNumber=?", new String[]{id});	
    			//如果存在这个搜索结果则返回true
    			if (rSet.next()) {
    				return true;
    			}
    		} catch (Exception e) {
    			// TODO: handle exception
    		}
    		//如果结果不存在则返回false
    		return false;			
    	}	
    }
    
    

    下面是使用这几个类来将excel导入数据库的实例代码

    //提交k3文档,这里使用注解设置映射路径
    	@ResponseBody
    	@RequestMapping(value="K3fileUpload", produces = "application/json;charset=UTF-8")
    	public static void  inputExcel(HttpServletRequest request) {
    		//获取前段传过来的文件路径
    		String file = request.getParameter("cs");
    		System.out.println("file===="+file);
    		//获取这个路径对应Excel文件中的内容
    		List<K3Model> listExcel=InputExcel.getAllByExcel(file);
    		//创建数据库工具类实例对象
    		DBhelper dBhelper=new DBhelper();
    		//连接数据库
    		dBhelper.connect();
    		//迭代K3Model类型的链表(这里一个model其实就是对应了一行Excel)
    		for (K3Model k3Model:listExcel) {
    			//获取相应的数据
    			String  id=k3Model.getId();
    			//判断要插入的数据是否已经存在
    			if (!InputExcel.isExist(id,dBhelper)) {
    				String sql="insert into TMPITEM(FNumber,FName,FModel) values(?,?,?)";
    				String[] str=new String[]{k3Model.getId(),k3Model.getName(),k3Model.getTypeString()};
    				//System.out.println("-----------in-------------------"+str.toString());
    				//将设置的sql语句与字符串传入相应的方法
    				dBhelper.Addu(sql, str);
    			}else{
    			//同上理
    				String sql="update TMPITEM set FName=?,FModel=? where FNumber=?";
    				String[] str=new String[]{k3Model.getName(),k3Model.getTypeString(),id};
    				//System.out.println("------------up------------------"+str.toString());
    				dBhelper.Addu(sql, str);
    			}
    		}
    		System.out.println("数据更新成功");		
    	}	
    

    如此整个Excel导入的后台代码全部完成。在前端只需要想办法调用inputExcel()方法,再传入需要导入的excel文件的路径就可以完成这次导入。

    展开全文
  • 将EXCEL导入到数据库

    2012-12-03 16:21:48
    将excel导入到数据库汇中,有很多方法,这里介绍两种常用的简单的方法: 一、直接excel保存成1997-2003版本的,不需要写SQL语句,过程如下:  1、打开企业管理器,打开要导入数据的数据库,在表上按右键,所有...
  • Delphi Excel数据导入到数据库 需要 uses ComObj; 具体使用方法在文档有说明
  • 将excel中的数据导入到数据库中。代码进攻参考,不提供数据库脚本。很容易懂。可以自己建一个表和一个excle数据导入试试。
  • 将Excel 导入到gridview显示并导入到数据库 有源代码
  • Excel导入导出数据库Excel批量导入导出数据库源码,以及一些解决乱码收藏的博客知识
  • Sql server中EXCEL导入到数据库中,出现失败,一般情况都是ACCESS需要更新,MicroSoft官方下载 https://www.microsoft.com/zh-cn/download/details.aspx?id=13255
  • 一个完整的例子,有源程序和编译好的可执行文件,展示了从EXCEL导入数据到数据库中。可以借鉴学习,适合初学者
  • VB6操作Excel导入到SQL2000数据库,Excel必须保存成2003的格式
  • 就是想把excel中的数据批量导入到后台数据库中,这样可以避免一个个的导入
  • spring boot+mybatis plus+easy poi实现数据库导出成excel和excel导入到数据库
  • vb.net将excel中的数据导入到数据库

    热门讨论 2012-05-07 00:52:00
    vb.net如何将excel中的数据导入到数据库
  • 详细讲述,如何将数据库导出为Excel,以及如何将Excel导入到数据库
  • 一、Excel表格数据 ...五、打开数据库创建表,表的字段要和Excel表格的字段一样 六、选中创建的表右键 七、选中刚才修改保存过的.csv文件,然后一直下一步就行了 八、导入成功之后的效果图 ...
  • Excel导入数据库

    2011-08-19 12:10:51
    Excel导入数据库 Excel导入数据库Excel导入数据库 Excel导入数据库Excel导入数据库 Excel导入数据库Excel导入数据库 Excel导入数据库
  • 【代码】Excel导入到数据库

    千次阅读 热门讨论 2018-01-23 23:30:12
    Excel导入到数据库
  • 主要介绍了PHP将Excel导入数据库及数据库数据导出至Excel的方法,涉及php操作数据库及Excel的相关技巧,需要的朋友可以参考下
  • 1.3右键“表”,打开导入向导,或者先其中一个excel导入到数据库,比如显示的“review1” 选择我们想导入的文件格式,比如excel file,点击下一步 1.4 点击下一步,点击… 从路径选择需要导入的文件,选择所想...
  • C#SQL数据库中数据导入Excel中,并将Excel中导入SQL数据库中
  • POI将EXCEL数据导入到数据库中

    千次阅读 2018-05-15 14:42:48
    1.今天项目需要添加需求,将excel表格导入到数据库中。想起利用poi框架去实现,在网上找了一个工具类,经测试,可以使用,附上代码因为是maven 管理项目,所以引入poi相关jar包 &lt;dependency&gt; &lt...
  • 将Excel导入到数据库脚本

    千次阅读 2012-02-06 09:24:33
    select * ...OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YSE;IMEX=1;DATABASE=E:\BinCard\UploadFiles\aaaaa.xls',[Sheet1$]) select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0', 'Excel
  • Excel导入数据库and数据库数据导入Excel,使用的是jdbc底层代码实现
  • ASP里,将Excel导入到Access数据库

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,525
精华内容 22,610
关键字:

怎样将excel导入到数据库中