java 从EXCEL导入到数据库

不念不忘少年蓝@ 2022-09-13 06:21 405阅读 0赞
  1. package com.fh.util;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import org.apache.poi.hssf.usermodel.HSSFCell;
  7. import org.apache.poi.hssf.usermodel.HSSFRow;
  8. import org.apache.poi.hssf.usermodel.HSSFSheet;
  9. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  10. /**
  11. * 说明:从EXCEL导入到数据库
  12. * 作者:FH Admin
  13. * from:fhadmin.cn
  14. */
  15. public class ObjectExcelRead {
  16. /**
  17. * @param filepath //文件路径
  18. * @param filename //文件名
  19. * @param startrow //开始行号
  20. * @param startcol //开始列号
  21. * @param sheetnum //sheet
  22. * @return list
  23. */
  24. public static List<Object> readExcel(String filepath, String filename, int startrow, int startcol, int sheetnum) {
  25. List<Object> varList = new ArrayList<Object>();
  26. try {
  27. File target = new File(filepath, filename);
  28. FileInputStream fi = new FileInputStream(target);
  29. HSSFWorkbook wb = new HSSFWorkbook(fi);
  30. HSSFSheet sheet = wb.getSheetAt(sheetnum); //sheet 从0开始
  31. int rowNum = sheet.getLastRowNum() + 1; //取得最后一行的行号
  32. for (int i = startrow; i < rowNum; i++) { //行循环开始
  33. PageData varpd = new PageData();
  34. HSSFRow row = sheet.getRow(i); //行
  35. int cellNum = row.getLastCellNum(); //每行的最后一个单元格位置
  36. for (int j = startcol; j < cellNum; j++) { //列循环开始
  37. HSSFCell cell = row.getCell(Short.parseShort(j + ""));
  38. String cellValue = null;
  39. if (null != cell) {
  40. switch (cell.getCellType()) { // 判断excel单元格内容的格式,并对其进行转换,以便插入数据库
  41. case 0:
  42. cellValue = String.valueOf((int) cell.getNumericCellValue());
  43. break;
  44. case 1:
  45. cellValue = cell.getStringCellValue();
  46. break;
  47. case 2:
  48. cellValue = cell.getNumericCellValue() + "";
  49. // cellValue = String.valueOf(cell.getDateCellValue());
  50. break;
  51. case 3:
  52. cellValue = "";
  53. break;
  54. case 4:
  55. cellValue = String.valueOf(cell.getBooleanCellValue());
  56. break;
  57. case 5:
  58. cellValue = String.valueOf(cell.getErrorCellValue());
  59. break;
  60. }
  61. } else {
  62. cellValue = "";
  63. }
  64. varpd.put("var"+j, cellValue);
  65. }
  66. varList.add(varpd);
  67. }
  68. } catch (Exception e) {
  69. System.out.println(e);
  70. }
  71. return varList;
  72. }
  73. }

发表评论

表情:
评论列表 (有 0 条评论,405人围观)

还没有评论,来说两句吧...

相关阅读