java读取cvs文件并导入数据库
作者:ZoeYen_ 发布时间:2023-11-25 01:23:13
标签:java,读取,cvs文件
本文实例为大家分享了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);
}
最后连接数据库。
来源:https://blog.csdn.net/ZoeYen_/article/details/84541389


猜你喜欢
- 本文实例为大家分享了java实现页显示效果的具体代码,供大家参考,具体内容如下效果图如下:实现步骤:1.创建实体User.class,参考代
- 创建SpringBoot项目,启动后,默认的访问路径即主机IP+默认端口号8080:http://localhost:8080/此时,我们就
- java模拟TCP通信实现客户端上传文件到服务器端,供大家参考,具体内容如下客户端package com.zr;import java.io
- 本文实例讲述了C#实现的Win32控制台线程计时器功能。分享给大家供大家参考,具体如下:在C#中提供了三种类型的计时器:1、基于 Windo
- java与JSON数据的转换实例详解JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一
- 区别一如果Mybatis Plus是扳手,那Mybatis Generator就是生产扳手的工厂。通俗来讲——MyBatis:一种操作数据库
- 在上一篇文章:Flutter进阶—实现动画效果(二)的最后,我们实现了一个控件,其中包含各种布局和状态处理控件。以及使用自定义的动画感知绘图
- 本文实例讲述了C#实现鼠标移动到曲线图上显示值的方法。分享给大家供大家参考。具体实现方法如下:一、问题:完成折线图报表后,产品经理要求把折线
- 需要的jar包:数据库代码:create database school character set utf8;use school;CRE
- 为了完成以上的需求,我们就需要模拟浏览器浏览网页,得到页面的数据在进行分析,最后把分析的结构,即整理好的数据写入数据库。那么我们的思路就是:
- 引言偶然在Youtube上看到一名国外安卓开发者分享了一个提升应用性能的视频,其中使用到了macro benchmark来进行性能测量,包括
- 先看效果图一、申请成为百度开发者,获得使用地图API接口的权限,获取(AK)码。1.打开百度地图开放平台打开网址:http://lbsyun
- 404这个错误真的是一言难尽!不过大多是配置文件出错,认真修改还是可以的1.web.xml配置错误:默认首页没有写的,在web.xml添加一
- 本文讲述在mybatis中如何使用ognl表达式实现动态组装sql语句新建Users实体类:public class Users { &nb
- 之前的一篇博客中,讲的是用栈实现了中缀表达式的简易计算器,对于我们人来讲,中缀表达式是一种比较直观,而且非常好计算的一种形式,但对于计算器来
- Java jar打包成exe应用程序,可在无JDK/JRE环境下运行老师让做一个小项目,但是需要打包发布出来,因此在网上查了很多资料之后总结
- 主要思想:将一个view设计成多层:背景层,含中奖信息等;遮盖层,用于刮奖,使用关联一个Bitmap的Canvas在该Bitmap上,使用它
- 1. 问题描述springboot的面世,成为Java开发者的一大福音,大大提升了开发的效率,其实springboot只是在maven的基础
- 数组的长度是固定的,无法适应数据变化的需求。为了解决这个问题,Java提供了另一个容器 java.util.ArrayList集合类,让我们
- 前言 短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,希望大家都能圆梦大厂,加油,我命由我不由天