1、利用Excel第三方工具,将Excel文件读取到内存中。使用最简单,方便的工具是apache的poi工具包,自己网上下载 http://poi.apache.org/ ,使用方法网上一搜一大片。
2、如果是对于特别大的excel(大于20M的话),简单的读取方法就容易内存溢出了,需要采用流式读取的方式,参考http://poi.apache.org/spreadsheet/how-to.html#xssf_sax_api
3、将已读入内存的Excel数据,整理成写数据库的数据结构,然后插入数据库。这部分工作应该不用介绍了,就是基本的数据库操作方法,与excel无关了
具体如下:
1、简介
编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
2、汇编程序
汇编程序。使用汇编语言编写计算机程序,程序员仍然需要十分熟悉计算机系统的硬件结构,所以从程序设计本身上来看仍然是低效率的、繁琐的。但正是由于汇编语言与计算机硬件系统关系密切,在某些特定的场合,如对时空效率要求很高的系统核心程序以及实时控制程序等,迄今为止汇编语言仍然是十分有效的程序设计工具。
3、执行原理
计算机对除机器语言以外的源程序不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的。这种将高级编程硬件程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。
package com.javen.excelimport java.util.List
import com.javen.db.DBhepler
import com.javen.entity.StuEntity
import com.javen.service.StuService
/**
* @author Javen
* @Email [email protected]
*
*/
public class TestExcelToDb {
public static void main(String[] args) {
//得到表格中所有的数据
List<StuEntity>listExcel=StuService.getAllByExcel("d://book.xls")
/*//得到数据库表中所有的数据
List<StuEntity>listDb=StuService.getAllByDb()*/
DBhepler db=new DBhepler()
for (StuEntity stuEntity : listExcel) {
int id=stuEntity.getId()
if (!StuService.isExist(id)) {
//不存在就添加
String sql="insert into stu (name,sex,num) values(?,?,?)"
String[] str=new String[]{stuEntity.getName(),stuEntity.getSex(),stuEntity.getNum()+""}
db.AddU(sql, str)
}else {
//存在就更新
String sql="update stu set name=?,sex=?,num=? where id=?"
String[] str=new String[]{stuEntity.getName(),stuEntity.getSex(),stuEntity.getNum()+"",id+""}
db.AddU(sql, str)
}
}
}
}
BufferedReader inputtry {
String s = new String()
input = new BufferedReader(new FileReader("f:\\123.txt"))
while ((s = input.readLine()) != null) { // 判断是否读到了最后一行
String info[] = s.split(" ")
System.out.println( info[0] + " " + info[1] + " " + info[2] )
}
input.close()
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace()
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
把info[0] + " " + info[1] + " " + info[2] 这三个值放在insert语句里就行了 经过测试