java 从EXCEL导入到数据库

简介: java 从EXCEL导入到数据库
package com.fh.util;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
 * 说明:从EXCEL导入到数据库
 * 作者:FH Admin
 * from:fhadmin.cn
 */
public class ObjectExcelRead {
  /**
   * @param filepath //文件路径
   * @param filename //文件名
   * @param startrow //开始行号
   * @param startcol //开始列号
   * @param sheetnum //sheet
   * @return list
   */
  public static List<Object> readExcel(String filepath, String filename, int startrow, int startcol, int sheetnum) {
    List<Object> varList = new ArrayList<Object>();
    try {
      File target = new File(filepath, filename);
      FileInputStream fi = new FileInputStream(target);
      HSSFWorkbook wb = new HSSFWorkbook(fi);
      HSSFSheet sheet = wb.getSheetAt(sheetnum);          //sheet 从0开始
      int rowNum = sheet.getLastRowNum() + 1;           //取得最后一行的行号
      for (int i = startrow; i < rowNum; i++) {         //行循环开始
        PageData varpd = new PageData();
        HSSFRow row = sheet.getRow(i);              //行
        int cellNum = row.getLastCellNum();           //每行的最后一个单元格位置
        for (int j = startcol; j < cellNum; j++) {        //列循环开始
          HSSFCell cell = row.getCell(Short.parseShort(j + ""));
          String cellValue = null;
          if (null != cell) {
            switch (cell.getCellType()) {           // 判断excel单元格内容的格式,并对其进行转换,以便插入数据库
            case 0:
              cellValue = String.valueOf((int) cell.getNumericCellValue());
              break;
            case 1:
              cellValue = cell.getStringCellValue();
              break;
            case 2:
              cellValue = cell.getNumericCellValue() + "";
              // cellValue = String.valueOf(cell.getDateCellValue());
              break;
            case 3:
              cellValue = "";
              break;
            case 4:
              cellValue = String.valueOf(cell.getBooleanCellValue());
              break;
            case 5:
              cellValue = String.valueOf(cell.getErrorCellValue());
              break;
            }
          } else {
            cellValue = "";
          }
          varpd.put("var"+j, cellValue);
        }
        varList.add(varpd);
      }
    } catch (Exception e) {
      System.out.println(e);
    }
    return varList;
  }
}

 

目录
相关文章
|
18天前
|
SQL 缓存 easyexcel
面试官问10W 行级别数据的 Excel 导入如何10秒处理
面试官问10W 行级别数据的 Excel 导入如何10秒处理
47 0
|
25天前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——TestStu.java
hibernate正向生成数据库表以及配置——TestStu.java
16 1
|
25天前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——Teacher.java
hibernate正向生成数据库表以及配置——Teacher.java
11 0
|
25天前
|
Java 数据库连接 数据库
hibernate正向生成数据库表以及配置——Student.java
hibernate正向生成数据库表以及配置——Student.java
10 0
|
30天前
|
XML 关系型数据库 MySQL
python将word(doc或docx)的内容导入mysql数据库
用python先把doc文件转换成docx文件(这一步也可以不要后续会说明),然后读取docx的文件并另存为htm格式的文件(上一步可以直接把doc文件另存为htm),python根据bs4获取p标签里的内容,如果段落中有图片则保存图片。(图片在word文档中的位置可以很好的还原到生成的数据库内容) 我见网上有把docx压缩后解压获取图片的,然后根据在根据xml来读取图片的位置,我觉得比较繁琐。用docx模块读取段落的时候还需要是不是判断段落中有分页等,然而转成htm之后就不用判断那么多直接判断段落里的样式或者图片等就可以了。
21 1
|
17天前
|
存储 NoSQL Java
Java数据库编程指南:实现高效数据存储与访问
【4月更文挑战第2天】Java开发者必须掌握数据库编程,尤其是JDBC,它是连接数据库的标准接口。使用Spring JDBC或JPA能简化操作。选择合适的JDBC驱动,如MySQL Connector/J,对性能至关重要。最佳实践包括事务管理、防SQL注入、优化索引和数据库设计。NoSQL数据库如MongoDB也日益重要,Java有对应的驱动支持。理解这些概念和技术是构建高效数据库应用的基础。
Java数据库编程指南:实现高效数据存储与访问
|
30天前
|
SQL 关系型数据库 MySQL
|
3天前
|
SQL 缓存 Java
Java数据库连接池:优化数据库访问性能
【4月更文挑战第16天】本文探讨了Java数据库连接池的重要性和优势,它能减少延迟、提高效率并增强系统的可伸缩性和稳定性。通过选择如Apache DBCP、C3P0或HikariCP等连接池技术,并进行正确配置和集成,开发者可以优化数据库访问性能。此外,批处理、缓存、索引优化和SQL调整也是提升性能的有效手段。掌握数据库连接池的使用是优化Java企业级应用的关键。
|
7天前
|
Java 应用服务中间件 Maven
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
使用IDEA搭建SpringMVC环境,Maven导入了依赖,但是运行报错 java.lang.ClassNotFoundException
8 1
|
28天前
|
Java 数据库
java面向对象高级分层实例_数据库操作类
java面向对象高级分层实例_数据库操作类
10 1