java poi excel 导入数据库_java POI 处理excel表格数据并导入数据库示例
java操作Excel最常用的开源组件有poi与jxl。jxl是韩国人开发的,发行较早,但是更新的很慢,目前似乎还不支持excel2007。 poi是apache下的一个子项目,poi应该是处理ms的office系列文档最好的组件了。poi3.7版本已经开始支持excel2007了。所以这里我们选择poi作为开发工具。
*
* java读取excel文件
*
* 一个Excel文件的层次:Excel文件->工作表->行->单元格 对应到POI中,为:workbook->sheet->row->cell
*
*/
public class PoiExcel {
public static String outputFile = "E:/users.xls";
//public static String fileToBeRead = "E:/蒋和杰.xls";
static String createTableSql="";//创建数据库的sql
static String colType="TEXT";//字段类型
static String key="id";//主键
static String charSet="utf8";//表格字符类型
static String ENGINE="InnoDB";//表格类型
static String tableName="tempExcelToMysql";//表名称
static String colName="col";//默认字段名
static Connection conn = null;
/* 数据库连接*/static void getConntion(){
try {
String driver_class = "com.mysql.jdbc.Driver";
String connection_url = "jdbc:mysql://localhost:3306/databasename?useUnicode=true&characterEncoding=gb2312";
String user_name = "username";
String db_password = "password";
Class.forName(driver_class);
conn = DriverManager.getConnection(connection_url, user_name,db_password);
}catch(Exception e){
e.printStackTrace();
}
}
public void CreateExcel() {
try {
// 创建新的Excel 工作簿
HSSFWorkbook workbook = new HSSFWorkbook();
// 在Excel工作簿中建一工作表,其名为缺省值
// 如要新建一名为"效益指标"的工作表,其语句为:
// HSSFSheet sheet = workbook.createSheet("效益指标");
HSSFSheet sheet = workbook.createSheet();
// 在索引0的位置创建行(最顶端的行)
HSSFRow row = sheet.createRow((short) 0);
//在索引0的位置创建单元格(左上端)
HSSFCell cell = row.createCell((short) 0);
// 定义单元格为字符串类型
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
// 在单元格中输入一些内容
cell.setCellValue("sweater");
// 新建一输出文件流
FileOutputStream fOut = new FileOutputStream(outputFile);
// 把相应的Excel 工作簿存盘
workbook.write(fOut);
fOut.flush();
// 操作结束,关闭文件
fOut.close();
System.out.println("文件生成...");
} catch (Exception e) {
System.out.println("已运行 xlCreate() : " + e);
}
}
/**
*
* 读取excel,遍历各个小格获取其中信息,并判断其是否是手机号码,并对正确的手机号码进行显示
* 注意: 1.sheet, 以0开始,以workbook.getNumberOfSheets()-1结束 2.row,
* 以0开始(getFirstRowNum),以getLastRowNum结束 3.cell,
* 以0开始(getFirstCellNum),以getLastCellNum结束, 结束的数目不知什么原因与显示的长度不同,可能会偏长
*
*/
public void readExcel(String fileToBeRead,String addacct) {
//将被表示成1.3922433397E10的手机号转化为13922433397,不一定是最好的转换方法
DecimalFormat df = new DecimalFormat("#");
try {
// 创建对Excel工作簿文件的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead));
for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) {
if (null != workbook.getSheetAt(numSheets)) {
HSSFSheet aSheet = workbook.getSheetAt(numSheets);//获得一个sheet
for (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet.getLastRowNum(); rowNumOfSheet++) {
System.out.print("行"+rowNumOfSheet);//其它格式的数据
if (null != aSheet.getRow(rowNumOfSheet)) {
HSSFRow aRow = aSheet.getRow(rowNumOfSheet);
ArrayList recode=new ArrayList();
for (short cellNumOfRow = 0; cellNumOfRow <= aRow.getLastCellNum(); cellNumOfRow++) {
if (null != aRow.getCell(cellNumOfRow)) {
HSSFCell aCell = aRow.getCell(cellNumOfRow);
int cellType = aCell.getCellType();
switch (cellType) {
case 0://Numeric
String strCell = df.format(aCell .getNumericCellValue());
System.out.print(strCell);
recode.add(strCell);
break;
case 1://String
strCell = aCell.getStringCellValue();
System.out.print(strCell);
recode.add(strCell);
break;
default:
System.out.println("格式不对不读");//其它格式的数据
}
}
} //end of 遍历所有数据项结束
getConntion();
String sql="insert into tab_student_info (member_no,member_name,sex," +
"contact_mobile,province_no,city_no,county_no," +
"village_no,address,status,oper_date," +
"oper_code,oper_type,domain_no,att1,"+
"values("+0+",'"+recode.get(0)+"',"+0+",'"+ recode.get(1) +"',"+ 1 +"," + 1 +","+ 1 +","+ 1 +",'"+ recode.get(2) +"'," +
1+","+"now()"+",'"+addacct+"',"+2+","+1+"," +0+","+
")";
System.out.println(sql);
statement = conn.createStatement();
statement.executeUpdate(sql);
//conn.commit();
} //end of if (null != aSheet.getRow(rowNumOfSheet))
System.out.println("");
} //end of for 遍历所有行结束
}
} //end of for 遍历所有sheet结束
} catch (Exception e) {
System.out.println("ReadExcelError" + e);
}
}
}
java poi excel 导入数据库_java POI 处理excel表格数据并导入数据库示例相关推荐
- Java实现Excel表格数据的导入(兼容xls与xlsx)
Java实现Excel表格数据的导入(兼容xls与xlsx) 目录 依赖 代码 注意点 目录 依赖 <!-- 添加POI的依赖用于Excel的操作 --><dependency> ...
- wps怎么导入access_mysql数据库中的表格数据如何导入wps中的excel,请问该怎么去做 | excel连接access数据库...
怎么把excel文件里的数据导入SQL数据库? 导据不一定要用OPENSET函数以用更简单的方法,步骤如下: 1.双击打sqlserver,右击需要导入数据的数据库,如图所示. 2.点击任务,再点击任 ...
- 表格数据批量导入html,excel表格数据导入前端table-html中的表格数据怎样导入到ecxel表?...
如何将excel中的数据自动导入web页面中? 如何将Excel中一个表格的数据导入到另一个表格 DataTable.ImportSheet(FileName,SheetSource,SheetDes ...
- java poi 导出excel 速度慢_java POI技术之导出数据优化(15万条数据1分多钟)
专针对导出excel2007 ,用到poi3.9的jar package com.cares.ynt.util; import java.io.File; import java.io.FileOut ...
- java excel 模板 替换_JAVA POI替换EXCEL模板中自定义标签(XLSX版本)满足替换多个SHEET中自定义标签...
个人说明:为了简单实现导出数据较少的EXCEL(根据自定义书签模板) 一.替换Excel表格标签方法 ``` /** * 替换Excel模板文件内容 * @param map * 需要替换的标签建筑队 ...
- java word上传下载_java poi 上传与下载word文件
java编程要实现对word的操作没有vb那种编程语言来得容易,得借助一些开源组件,其中就包括jacob.poi等, 而poi应用得最为广泛,对word2003和2007的读和写word操作都十分方便 ...
- java poi 读取 word图片_Java Poi 根据文字内容 插入 word 图片-Go语言中文社区
需求描述 如下图,我需要在word里根据一个图片的名字,将名字替换成该图片(公章) 思路: 用POI遍历每一个表格里的每一行的每一个单元格,如果遇到我自己定义的"&章",则 ...
- JAVA处理Excel表格数据并写入数据库
Excel提供了把SQLServer作为数据源导入数据的技术,但似乎没有提供方法把Excel中的数据导入到数据库.Apache的POI提供了Java程序对Microsoft Office格式档案读和写 ...
- 如何将Excel表格数据批量导入到MySQL数据库中
最近遇到一个问题,就是如何将excel表格数据中几百上千行的数据导入到数据库中,使用Navicat工具的手动导入一直不成功,所以就选择使用代码的方式来进行导入,过程也比较简单,我们一起来看一下是如何实 ...
- Java中Excel表格数据的导入与导出
该指南的发布为当前svn主干提供了功能.那些在以前版本中查找信息的人应该查看发布的文档. HSSF允许从XLS文件中写入或读取数字.字符串.日期或公式单元格值.在这个版本中,还包括行和列的大小.单元样 ...
最新文章
- html5的video怎么把里面的控制器移出来_日产Pro-Pilot的ADAS控制器拆解
- 深度学习卷积网络中反卷积/转置卷积的理解 transposed conv/deconv
- android ble 连续读写,Android BLE实现对蓝牙的读写
- 缓存中间件-mac下Memcache 安装
- BUG缺陷管理工具--测试用例执行
- 如何从另一个Shell脚本调用Shell脚本?
- C#中的常量、类型推断和作用域
- 带有RNN循环神经网络的机器学习 4 NLP 从零到英雄 ML with Recurrent Neural Networks
- 华为android phone 驱动,Huawei 手机 驱动程序下载——更新 Huawei 软件
- 4G通信简单验证(合宙Air720H)
- 关于笔记本突然鼠标无法连接,电脑蓝牙消失的问题
- 2021/07/24 SpringBoot2 Web开发快速入门
- 自己对香港一卡通的总结
- Mysql统计每个小时或半小时数据的数量
- nginx在linux中查看日志信息,nginx查看日志
- IDEA上Java项目控制台中文乱码
- Excel公式:将度分秒格式转换成度的格式
- 2022华东杯B题中证红利指数投资问题思路讲解
- erp oracle数据库连接失败,浪潮ERP软件ORACLE错误ORA-01033问题汇总 | 浪潮888博客
- GIF动态图怎么提取成图片?分享三个动态图提取成图片的方法