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表格数据并导入数据库示例相关推荐

  1. Java实现Excel表格数据的导入(兼容xls与xlsx)

    Java实现Excel表格数据的导入(兼容xls与xlsx) 目录 依赖 代码 注意点 目录 依赖 <!-- 添加POI的依赖用于Excel的操作 --><dependency> ...

  2. wps怎么导入access_mysql数据库中的表格数据如何导入wps中的excel,请问该怎么去做 | excel连接access数据库...

    怎么把excel文件里的数据导入SQL数据库? 导据不一定要用OPENSET函数以用更简单的方法,步骤如下: 1.双击打sqlserver,右击需要导入数据的数据库,如图所示. 2.点击任务,再点击任 ...

  3. 表格数据批量导入html,excel表格数据导入前端table-html中的表格数据怎样导入到ecxel表?...

    如何将excel中的数据自动导入web页面中? 如何将Excel中一个表格的数据导入到另一个表格 DataTable.ImportSheet(FileName,SheetSource,SheetDes ...

  4. java poi 导出excel 速度慢_java POI技术之导出数据优化(15万条数据1分多钟)

    专针对导出excel2007 ,用到poi3.9的jar package com.cares.ynt.util; import java.io.File; import java.io.FileOut ...

  5. java excel 模板 替换_JAVA POI替换EXCEL模板中自定义标签(XLSX版本)满足替换多个SHEET中自定义标签...

    个人说明:为了简单实现导出数据较少的EXCEL(根据自定义书签模板) 一.替换Excel表格标签方法 ``` /** * 替换Excel模板文件内容 * @param map * 需要替换的标签建筑队 ...

  6. java word上传下载_java poi 上传与下载word文件

    java编程要实现对word的操作没有vb那种编程语言来得容易,得借助一些开源组件,其中就包括jacob.poi等, 而poi应用得最为广泛,对word2003和2007的读和写word操作都十分方便 ...

  7. java poi 读取 word图片_Java Poi 根据文字内容 插入 word 图片-Go语言中文社区

    需求描述 如下图,我需要在word里根据一个图片的名字,将名字替换成该图片(公章) 思路: 用POI遍历每一个表格里的每一行的每一个单元格,如果遇到我自己定义的"&章",则 ...

  8. JAVA处理Excel表格数据并写入数据库

    Excel提供了把SQLServer作为数据源导入数据的技术,但似乎没有提供方法把Excel中的数据导入到数据库.Apache的POI提供了Java程序对Microsoft Office格式档案读和写 ...

  9. 如何将Excel表格数据批量导入到MySQL数据库中

    最近遇到一个问题,就是如何将excel表格数据中几百上千行的数据导入到数据库中,使用Navicat工具的手动导入一直不成功,所以就选择使用代码的方式来进行导入,过程也比较简单,我们一起来看一下是如何实 ...

  10. Java中Excel表格数据的导入与导出

    该指南的发布为当前svn主干提供了功能.那些在以前版本中查找信息的人应该查看发布的文档. HSSF允许从XLS文件中写入或读取数字.字符串.日期或公式单元格值.在这个版本中,还包括行和列的大小.单元样 ...

最新文章

  1. html5的video怎么把里面的控制器移出来_日产Pro-Pilot的ADAS控制器拆解
  2. 深度学习卷积网络中反卷积/转置卷积的理解 transposed conv/deconv
  3. android ble 连续读写,Android BLE实现对蓝牙的读写
  4. 缓存中间件-mac下Memcache 安装
  5. BUG缺陷管理工具--测试用例执行
  6. 如何从另一个Shell脚本调用Shell脚本?
  7. C#中的常量、类型推断和作用域
  8. 带有RNN循环神经网络的机器学习 4 NLP 从零到英雄 ML with Recurrent Neural Networks
  9. 华为android phone 驱动,Huawei 手机 驱动程序下载——更新 Huawei 软件
  10. 4G通信简单验证(合宙Air720H)
  11. 关于笔记本突然鼠标无法连接,电脑蓝牙消失的问题
  12. 2021/07/24 SpringBoot2 Web开发快速入门
  13. 自己对香港一卡通的总结
  14. Mysql统计每个小时或半小时数据的数量
  15. nginx在linux中查看日志信息,nginx查看日志
  16. IDEA上Java项目控制台中文乱码
  17. Excel公式:将度分秒格式转换成度的格式
  18. 2022华东杯B题中证红利指数投资问题思路讲解
  19. erp oracle数据库连接失败,浪潮ERP软件ORACLE错误ORA-01033问题汇总 | 浪潮888博客
  20. GIF动态图怎么提取成图片?分享三个动态图提取成图片的方法

热门文章

  1. python中的range与list函数
  2. Kapacitor安装及使用
  3. oracle scn隐藏参数,Oracle隐含参数scn不一致启动
  4. Java用sqlit拆分小数_如何将SQLite列中的分隔值拆分为多列
  5. 李宏毅机器学习(二)自注意力机制
  6. 论文浅尝 | 基于知识图谱的智能调研方法(DI佳作)
  7. 服务器 | 安装最新版R和Rstudio(3.5.3)
  8. 第四届泰迪杯数据挖掘大赛
  9. 事理逻辑为核心的自然语言处理理论实践与工业探索项目
  10. chatbot2 RNN语言模型