实测:向MySql数据库导入excel表数据

  最近要开发一个小的答题系统,如果题目人工录入那确实很麻烦。所以想到是不是可以从用一些现有数据格式的文件导入数据。在网上查了一下,看到有关于将excel的数据导入到mysql的方法。所以将题库数据整理成excel的。 

  然后另存为.csv格式的文件。 
  然后在phpmyadmin中选择导入操作。
  但是由于插入的数据出现乱码,失败。 
  查找原因:因为excel默认编码格式为ANSI,而mysql数据库默认的编码方式是utf-8。
  解决办法:我是用editplus将.csv格式的文件打开(打开时将“编码”选择为系统默认即可),然后另存为一份编码为utf-8的文件。(我是只用了editplus进行的这个操作,如果还有其他可行并且方便的软件,朋友们也可以留言交流) 
        
  然后重新执行导入操作。
  所有选项均为默认,导入成功,但是数据表为新建表,并且表明为table 2(该数据库中之前有一张表),并且表的字段名为col1,col2......并且所有字段的类型均为varchar。

  检查后发现,在导入数据时,选择完文件后,会有如下提示

  勾选上,点击执行。
  这次导入的数据表的字段名就是自己在excel中第一行设置的了。 

  虽然数据导入到mysql中了,但是和我最初的目的仍有稍许偏差,我是想将excel表中的数据,导入到数据库中对应表中。

  仔细分析后,发现问题可能在于选择导入时,目录级别有问题。 
  前两次选择导入操作的时候,都是在database下操作的。

  这次在localhost》database》table下选择导入操作。
 
        
   一上来就报错,不过貌似数据插入的位置对了。根据提示,错误是主键列。我再新建表的时候,主键列设为自增。 
  先将自增属性去掉试试。 
  依然报错。
  再将主键去掉试试。

  

   数据终于插入进去了,不过excel表中第一行列名也被当做输入插入到数据库中了。 而且编号是从0开始的,这可能是刚才报错的原因。
   为了找出真正原因,重新测试。将表删除重新建立一张空表。
  打开之前另存为utf-8编码的.csv文件,将列名的一行删除并保存文件。
 
        
   顺利插入,大功告成,吼吼。

时间: 2024-08-01 06:34:01

实测:向MySql数据库导入excel表数据的相关文章

Java版将EXCEL表数据导入到数据库中

1.采用第三方控件JXL实现 try { //实例化一个工作簿对象 Workbook workBook=Workbook.getWorkbook(new File("F://qzlx.xls")); //获取该工作表中的第一个工作表 Sheet sheet=workBook.getSheet(0); //获取该工作表的行数,以供下面循环使用 int rowSize=sheet.getRows(); for(int i=0;i<rowSize;i++) { //编号 String

Excel表数据导入Sql Server数据库中

Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1.首先,我们要先在test数据库中新建一个my_test表,该表具有三个字段tid int类型, tname nvarchar类型, tt nvarchar类型(注意:my_test表中的数据类型必须与Excel中相应字段的类型一致) 2. 我们用SELECT * FROM  OPENROWSET( 'Microsoft.Jet.OLEDB.4.0 ', 'Excel  5.0;DatabASE=[Excel表

Excel表数据导入数据库表中

***Excel表数据导入到数据库表中 通过数据库表的模板做成‘Excel’表的数据导入到数据库相应的表中(注意:主表 和 从表的关系,要先导‘主表’在导入从表) 过程:通过数据库的导入工具—先导入为一张临时表,在插入到正式表中.语句如下: --YK_TYPK插入数据 insert into YK_TYPK --插入'YK_TYPK(通用品库)'数据 select * from Sheet1$_TYPK_caoyao ---------------------------------------

MySQL批量导入Excel数据

MySQL批量导入Excel数据 1.确定需要导入数据的表名称以及字段,然后在新建的Excel表中,按照表字段正确排序:(注:(Excel文件的名称最好和数据库的名称一致,sheet表的名字最好和表名称一致,方便需要导入多张表数据时一一对应)) 2.在Excel表中,正确填写需要导入的数据,一行数据对应着数据库表中的一行记录:(注:各个字段的格式要求需要和数据库中的限制一样,避免出现差错) 3.收集好需要导入的数据后,点击保存.(注:导入的时候,Excel文件处于打开状态) 4.选中需要导入数据

winfrom 导入Excel表到access数据库(来自小抽奖系统)

网上有很多这种方法,本人只是针对自己的系统来实现的 //导入excel表 private void ImportTSMenu_Click(object sender, EventArgs e) { OpenFileDialog openFD = new OpenFileDialog(); openFD.Filter = "Excel文件|*.xls"; if (openFD.ShowDialog(this.Owner) == DialogResult.OK) { string strF

oracle导入Excel表文本数据

首先导Excel表数据要先建和Excel表字段对应的表,然后将Excel表另存为Txt文本, 然后在Plsql客户端点击工具->文本导入器 然后这里要选择用户及其表,点击导入数据就可以 原文地址:https://www.cnblogs.com/mzq123/p/11402721.html

Excel向数据库插入数据和数据库向Excel导出数据

为了熟悉java里工作簿的相关知识点,所以找了"Excel向数据库插入数据和数据库向Excel导出数据"的功能来实现. 注意事项:1,mysql数据库: 2,需要导入的jar包有 jxl.jar,mysql-connector-java-5.1.22-bin.jar,ojdbc6.jar 代码如下: 一, 建立数据库名称 javaforexcel,建立表stu DROP TABLE IF EXISTS `stu`;CREATE TABLE `stu` (  `id` int(11) N

mysql的导入和导出数据,删除数据

本文转自网络优秀的文章 详细可以参考https://www.cnblogs.com/Cherie/p/3309456.html https://www.cnblogs.com/roverliang/p/6436140.html https://www.cnblogs.com/mkfywj/p/5452045.html https://www.cnblogs.com/waynechou/p/7794939.html 删除表内容,不删除表结构 truncate table 表名    --自动增长的

Mysql导出表结构及表数据 mysqldump用法

命令行下具体用法如下:  mysqldump -u用戶名 -p密码 -d 數據库名 表名 脚本名; 1.导出數據库為dbname的表结构(其中用戶名為root,密码為dbpasswd,生成的脚本名為db.sql)    mysqldump -uroot -pdbpasswd -d dbname >db.sql; 2.导出數據库為dbname某张表(test)结构    mysqldump -uroot -pdbpasswd -d dbname test>db.sql; 3.导出數據库為dbna