java读取cvs文件并导入数据库
程序员文章站
2023-11-09 14:20:16
本文实例为大家分享了java读取cvs文件并导入数据库的具体代码,供大家参考,具体内容如下
首先获取文件夹下面的所有类型相同的excel,可以用模糊匹配contains(...
本文实例为大家分享了java读取cvs文件并导入数据库的具体代码,供大家参考,具体内容如下
首先获取文件夹下面的所有类型相同的excel,可以用模糊匹配contains(“匹配字段”)
public static list getdictory(string path) { file f = new file(path); list<string> dictories = new arraylist<string>(); if (!f.exists()) { system.out.println(path + "路径不存在"); } else { file fa[] = f.listfiles(); for (int i = 0; i < fa.length; i++) { file fs = fa[i]; if (!fs.isdirectory() && fs.getname().contains("csv")) { dictories.add(path + fs.getname()); } } system.out.println(dictories); } return dictories; }
操作jxl类型的excel表格需要导入一个jxl的jar包
private static void getexecl(statement statement) { jxl.workbook readwb = null; try { // 构建workbook对象, 只读workbook对象 // 直接从本地文件创建workbook,根据实际情况更改文件路径 inputstream instream = new fileinputstream("文件路径"); readwb = workbook.getworkbook(instream); // sheet的下标是从0开始 // 获取第一张sheet表 sheet readsheet = readwb.getsheet(0); // 获取sheet表中所包含的总行数 int rsrows = readsheet.getrows(); // 循环获取excel的一行数据 for (int i = 2; i < rsrows; i++) { // system.out.println("\n"); // 获取需要导入数据库的单元格(列) int[] number = { 0, 4, 5, 7 }; cell cell0 = readsheet.getcell(0, i);//第i行第一格 cell cell4 = readsheet.getcell(4, i);//第i行第五格 cell cell5 = readsheet.getcell(5, i);//第i行第六格 int id=cell0.getcontents)();//获取第一格的数据 }readwb.close(); } catch (exception e) { e.printstacktrace(); } }
但是有些从平台,后台之类的地方导出的excel是cvs类型。cvs是文本类型的文件,每一个单元格的数据使用“,”隔开。
public static void getexecl(statement statement, string path) { try { bufferedreader reader = new bufferedreader(new filereader(path));// 换成你的文件名 reader.readline();// 第一行信息,为标题信息,不用,如果需要,注释掉 string line = null; string everyline = null; list<string> list = new arraylist<string>(); while ((line = reader.readline()) != null) { // 行数 everyline = line; list.add(everyline); } // 读每一行数据 for (int i = 1; i < list.size(); i++) { // csv格式文件为逗号分隔符文件,这里根据逗号切分 int j = 0; string item[] = list.get(i).split(","); } if (item[j] != null) { string id = item[0]; string datetime=item[8]; } } }
关于时间格式,excel中的时间需要格式化一下,才能导入数据库中相应的字段,而cvs的不用。前提是数据库中的字段是datetime类型的。
string receivetime = null; if (cell11.gettype() == celltype.date) { datecell dc = (datecell) cell11; date date = dc.getdate(); simpledateformat sdf = new simpledateformat("yyyy-mm-dd hh:mm:ss"); receivetime = sdf.format(date); }
最后连接数据库。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。