将Excel数据导入mysql数据库的几种方法

“我的面试感悟”有奖征文大赛结果揭晓!

前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面和大家分享一下:

一.用java来将Excel表格中的数据转到mysql中

这是我们用的第一种方法,就是在java找你感谢个类,然后这个类会将Excel表格中的数据存储到内存里,然后再从内存中读出来插入到数据库中,但是要 注意了,这里是存储到String[ ]数组里面,所以取出来的数据也是String类型,如果你的表里面有int类型的数据,那么你一定要将那一条取出来然后强制转换,如果你的数据表结构没 有那么复杂,比较简单的话那么可以使用这种方法,如果字段的结构复杂那也可以使用,只不过要慢慢转,多写点代码,不怕累的同志可以试试.下面是我从网上查 的代码:

1、添加POI jar包到项目的lib目录下­

2、Excel文件目录:d://excel.xls­

3、数据库字段为:num1 num2 num3 num4 num5 num6­

4、数据库名:blog­

5、表名:test­

6、编写类:连接mysql的字符串方法、插入的方法、实体类­­

import java.io.FileInputStream;­

import java.io.FileNotFoundException;­

import java.io.IOException;­

import org.apache.commons.logging.Log;­

import org.apache.commons.logging.LogFactory;­

import org.apache.poi.hssf.usermodel.HSSFCell;­

import org.apache.poi.hssf.usermodel.HSSFRow;­

import org.apache.poi.hssf.usermodel.HSSFSheet;­

import org.apache.poi.hssf.usermodel.HSSFWorkbook;­

public class TestExcel {­

//记录类的输出信息­

static Log log = LogFactory.getLog(TestExcel.class); ­

//获取Excel文档的路径­

public static String filePath = "D://excel.xls";­

public static void main(String[] args) {­

try {­

// 创建对Excel工作簿文件的引用­

HSSFWorkbook wookbook = new HSSFWorkbook(new FileInputStream(filePath));­

// 在Excel文档中,第一张工作表的缺省索引是0,­

// 其语句为:HSSFSheet sheet = workbook.getSheetAt(0);­

HSSFSheet sheet = wookbook.getSheet("Sheet1");­

//获取到Excel文件中的所有行数­

int rows = sheet.getPhysicalNumberOfRows();­

//遍历行­

for (int i = 0; i < rows; i++) {­

// 读取左上端单元格­

HSSFRow row = sheet.getRow(i);­

// 行不为空­

if (row != null) {­

//获取到Excel文件中的所有的列­

int cells = row.getPhysicalNumberOfCells();­

String value = "";     ­

//遍历列­

for (int j = 0; j < cells; j++) {­

//获取到列的值­

HSSFCell cell = row.getCell(j);­

if (cell != null) {­

switch (cell.getCellType()) {­

case HSSFCell.CELL_TYPE_FORMULA:­

break;­

case HSSFCell.CELL_TYPE_NUMERIC:­

value += cell.getNumericCellValue() + ",";         ­

break;   ­

case HSSFCell.CELL_TYPE_STRING:­

value += cell.getStringCellValue() + ",";­

break;­

default:­

value += "0";­

break;­

}       ­

// 将数据插入到mysql数据库中­

String[] val = value.split(",");­

TestEntity entity = new TestEntity();­

//现在开始数据转换啦!!!!!!*************************************************

double a = Double.parseDouble(val[0]);

long code = (long)a;

entity.setNum1(code);­

entity.setNum2(val[1]);­

entity.setNum3(val[2]);­

entity.setNum4(val[3]);­

entity.setNum5(val[4]);­

entity.setNum6(val[5]);­

TestMethod method = new TestMethod();­

method.Add(entity);­

} catch (FileNotFoundException e) {­

e.printStackTrace();­

} catch (IOException e) {­

e.printStackTrace();­

我们的数据库实在是太复杂,所以这个方法bye-bye了!!!

二.手动进行Excel数据和MySql数据转换

这个方法也是从网上查到的,比第一种要简单一些,一个命令就搞定,下面copy给大家:

假如要把如图所示的Excel表格导入到MySql数据库中,如图:

步骤一:

选取要导入的数据快儿,另外要多出一列,如下图:

步骤二:

将选中的数据快儿拷贝到一个新建的表格工作薄,然后“另存为” -》“文本文件(制表符分割)(*.txt)”,假如存到“D:data.txt”这个位置里。如图:

步骤三:

根据要导入的数据快儿建立MySql数据库和表,然后使用命令

load data local infile 'D:data.txt' into table exceltomysql fields terminated by 't';

进行导入操作。如下图:

现在数据已经全部导入到MySql里了,

让我们来select一下吧,如图:

到此,数据由Excel到MySql的转换已经完成。

下面说下,数据从MySql到Excel的转化,其过程其实还是借助那个“制表符分割”的文本文件。

将如要将这个表中的男生信息导入到Excel中,可以这样。

select * into outfile 'D:man.txt' from exceltomysql where xingbie="男";

如图:

这样,表中所有男生的信息都被输出到以制表符分割,'n'结尾的文本文件D:man.txt文件中。

你可以打开Excel,然后选择“数据”->“导入外部数据”->“导入数据”,选中“D:man.txt”,一路确定就行了。

好了,这个方法我们也是过了,可行度倒是可以,但是我们还是遇到了一个问题,那就是当我们导入有汉字的数据时,数据库的那个字段显示不了,有一点点乱码, 但很多是空,不知道为什么,字段的属性是varchar,没错的,所以这一问题没有解决,我们只好又换!!!知道怎么回事的同学指点指点啊,先谢谢 了!!!

三.软件导入

哈哈,这个方法是最爽的,我们终于搜到了一个这么方便的东东,名字叫"xls2sql",大家去百度一下也可以搜到,下下来用就是了,但是问题还是接踵而 至啊,真是超级郁闷!!就是你在到如数据的时候他会跟你的Excel自动建表,然后字段属性也是很智能的帮你完成,完全就是一款傻瓜软件,可是我们的表已 经建好了,字段属性也已经完成,它没那么听话我们也只好另寻他法了,无奈啊..........

四.csv导入

这是我们最终采取的方法,就是你先从mysql数据库中导出csv的空数据表,然后再把Excel中的数据复制到相应的csv表格中,然后再用mysql 导入csv数据表...不过这里也有点小麻烦,就是有的时候csv表格保存的时候他会出错,你再打开的时候可能他会把多有的数据都挤到第一列去,没有关 系,在mysql插入数据的时候选择制表键就可以了~~,如果cvs中的数据排列正常的话那就什么都不用选,插入的时候默认选择是字符....

将Excel数据导入mysql数据库的几种方法的更多相关文章

  1. 【MySQL笔记】Excel数据导入Mysql数据库的实现方法——Navicat

    很多公司尤其有点年头的公司,财务业务部门的各种表单都是excel来做的表格,随着互联网的发展各种业务流程都电子化流程化了,再在茫茫多的文档中去查找某一个年份月份的报告是件相当枯燥的事,所以都在想办法将 ...

  2. excel数据导入mySql数据库

    1.将excel数据保存好 2.打开数据库,在表上点击右键,选择导入向导 3.点击下图中红色部门,点击下一步 4.选择excel文件的位置,下方的表空间内,会出现excel中的sheet页,选择要导入 ...

  3. Excel连接到MySQL,将Excel数据导入MySql,MySQL for Excel,,

    Excel连接到MySQL 即使当今时代我们拥有了类似微软水晶报表之类的强大报表工具和其他一些灵活的客户管 理应用工具,众多企业在分析诸如销售统计和收入信息的时候,微软的Excel依然是最常用的工具. ...

  4. navcat excel数据导入mysql的方法

    navcat excel数据导入mysql的方法 先navcat导出 xls格式 然后把数据复制到往这个xls里 (按照这个xls格式) 然后导入mysql就行了 如果导入的过程无法识别excel里的 ...

  5. 把execel表数据导入mysql数据库

    今天,是我来公司第二周的第一天. 作为新入职的实习生,目前还没适合我的实质项目工作,今天的学习任务是: 把execel表数据导入到mysql数据库,再练习下java操作JDBC. 先了解下execel ...

  6. 利用TOAD实现把EXCEL数据导入oracle数据库

    利用TOAD实现把EXCEL数据导入oracle数据库 工具:   Toad11.7z(百度搜索,直接下载) 1.将Excel文件中某些字段导入到Oracle数据库的对应表 连接想要导入的数据库 ,然 ...

  7. c#将Excel数据导入到数据库的实现代码

    这篇文章主要介绍了c#将Excel数据导入到数据库的实现代码,有需要的朋友可以参考一下 假如Excel中的数据如下: 数据库建表如下: 其中Id为自增字段: 代码: 代码如下: using Syste ...

  8. PHP把excel导入mysql数据库最常用的方法

    Posted on 2011-03-25 09:16 PHP博客 阅读(1316) 评论(0)  编辑 收藏 引用 网摘 PHP把excel(xls)文件导入mysql数据库最常用的方法就是先把xls ...

  9. java实现EXCEL数据导入到数据库中的格式问题的解决

    之前作为项目甲方,加之java接触不多,在java web开发方面都是打下手的份. 对于EXCEL数据导入到数据库这个问题一直老是出现格式原因而导入失败也是未免惆怅,开发团队也是只说回去检查一下格式. ...

随机推荐

  1. Dialog+NumberPicker

      package com.gtercn.myapplication; import android.app.Activity; import android.content.DialogInterf ...

  2. 网页打印A4纸-----表格在跨页时自动换页打印的实现 (转)

    在最近所做的一个项目中,需要通过网页来打印不少的表单,但是又不想每个打印页签各占用一个页面,这样就需要生存很多不同的冗余页面,为了减少冗余,所有的表单通过jquery的页签tab来实现的. 一 :基本 ...

  3. hdu1963 完全背包(数据压缩)

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1963 注意:题中有一句话说债券的价钱都是1000的倍数,我之前没看到这句话,写的完全背包, ...

  4. 学习笔记总结---关于sass

    今天跟大家共同分享交流一下关于sass的知识点: sass的产生: css不是一种编程语言,我们可以用它开发网页样式,但不能用它进行编程.它没有常量,变量,也没有条件语句,只是对属性一行行的描述,资料 ...

  5. Color the ball(线段树)

    Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...

  6. MySQL优化经验和方法汇总

    一.服务器硬件对MySQL性能的影响  1.磁盘寻道能力(磁盘I/O),以目前高转速SCSI硬盘(7200转/秒)为例,这种硬盘理论上每秒寻道7200次,这是物理特性决定的,没有办法改变. MySQL ...

  7. ACM: 强化训练-海贼王之伟大航路-dfs-枝减

    海贼王之伟大航路 Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Descriptio ...

  8. ACM: 限时训练题解-Rock-Paper-Scissors-前缀和

    Rock-Paper-Scissors   Rock-Paper-Scissors is a two-player game, where each player chooses one of Roc ...

  9. SVN错误:Attempted to lock an already-locked dir

    在eclipse里提交和更新文件是报错: Attempted to lock an already-locked dir svn: Working copy 'F:\workspace\WebFram ...

  10. Cortex-M0(NXP LPC11C14)启动代码分析

    作者:刘老师,华清远见嵌入式学院讲师. 启动代码的一般作用 1.堆和栈的初始化: 2.向量表定义: 3.地址重映射及中断向量表的转移: 4.初始化有特殊要求的断口: 5.处理器模式: 6.进入C应用程 ...