Poi读取excel 并写入mysql
2015-12-29 10:15
609 查看
解决技术难题:
1、EXCEL空值问题
2、把excel日期写成mysql日期类型
3、数字强制转换为int型
1、EXCEL空值问题
2、把excel日期写成mysql日期类型
3、数字强制转换为int型
private void handleExcelAction(ActionEvent event) { String filePath = "C:\\Users\\Administrator\\Desktop\\we1.xls"; try { // 创建对Excel工作簿文件的引用 HSSFWorkbook wookbook = new HSSFWorkbook(new FileInputStream(filePath)); // 在Excel文档中,第一张工作表的缺省索引是0 // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0); //HSSFSheet sheet = wookbook.getSheet("Sheet1"); HSSFSheet sheet = wookbook.getSheetAt(0); //获取最长的列 //获取到Excel文件中的所有行数 int rows = sheet.getPhysicalNumberOfRows(); int max_cells = 0; //获取最长的列 for (int i = 0; i < rows; i++) { HSSFRow row = sheet.getRow(i); if (row != null) { int cells = row.getPhysicalNumberOfCells(); if (max_cells < cells) { max_cells = cells; } } } //遍历行 for (int i = 0; i < rows; i++) { // 读取左上端单元格 HSSFRow row = sheet.getRow(i); // 行不为空 if (row != null) { String value = ""; //遍历列 for (int j = 0; j < max_cells; j++) { //获取到列的值 HSSFCell cell = row.getCell(j); if (cell == null) { value += "NULL,"; } else { switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_FORMULA: break; case HSSFCell.CELL_TYPE_NUMERIC: //value += "'"+cell.getNumericCellValue() + "',"; if (HSSFDateUtil.isCellDateFormatted(cell)) { SimpleDateFormat dff = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date2 = HSSFDateUtil.getJavaDate(cell.getNumericCellValue()); String date1 = dff.format(date2); value += "'" +date1+ "'"; } else { value += "'" + (int)cell.getNumericCellValue()+ "',"; } break; case HSSFCell.CELL_TYPE_STRING: value += "'" + cell.getStringCellValue() + "',"; break; default: value += "NULL"; break; } } } // 将数据插入到mysql数据库中 System.out.print(value + "\n"); String driver = "com.mysql.jdbc.Driver"; // URL指向要访问的数据库名scutcs String url = "jdbc:mysql://127.0.0.1:3306/scutcs"; // MySQL配置时的用户名 String user = "root"; // MySQL配置时的密码 String password = "root"; try { // 加载驱动程序 Class.forName(driver); // 连续数据库 Connection conn = DriverManager.getConnection(url, user, password); if (!conn.isClosed()) { System.out.println("Succeeded connecting to the Database!"); } // statement用来执行SQL语句 Statement statement = conn.createStatement(); // 要执行的SQL语句 String sql = "INSERT INTO student(sno,sname,sex,bdate) VALUES (" + value + ")"; // 结果集 statement.execute(sql); conn.close(); } catch (ClassNotFoundException e) { System.out.println("Sorry,can`t find the Driver!"); e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
相关文章推荐
- Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ 解决方法
- MYSQL 储存过程 用户登录更新token创建时间,过期时间,账户是否冻结
- mysql中Where条件中字段顺序的重要性
- Mysql对自增主键ID进行重新排序
- mysql sql语句创建表
- MySql常用命令
- Mysql自增主键ID重新排序方法详解
- mysql 常用命令
- MySQL学习笔记--简单主从复制配置
- MySQL配置文件优化
- ubuntu15.04中安装mysql和mysql-workbench
- JSP实现HTML网页对Mysql数据库的数据修改
- JSP实现HTML网页中分页查询Mysql数据库数据
- JSP实现HTML网页管理Mysql数据库
- Mysqldump参数大全
- MySql备份还原工具(v1.0)
- mysql alter 语句用法,添加、修改、删除字段等
- MySQL新增字段、修改字段位置和查询存储过程的SQL代码
- MySQL中的binlog相关命令和恢复技巧
- mysql常见错误代码、原因及处理办法