1 import java.io.File;
2 import java.io.FileInputStream;
3 import java.util.ArrayList;
4 import java.util.List;
5
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
12 public class ObjectExcelRead {
13
14 /**
15 * @param filepath //文件路径
16 * @param filename //文件名
17 * @param startrow //开始行号
18 * @param startcol //开始列号
19 * @param sheetnum //sheet
20 * @return list
21 */
22 public static List<Object> readExcel(String filepath, String filename, int startrow, int startcol, int sheetnum) {
23 List<Object> varList = new ArrayList<Object>();
24
25 try {
26 File target = new File(filepath, filename);
27 FileInputStream fi = new FileInputStream(target);
28 HSSFWorkbook wb = new HSSFWorkbook(fi);
29
30 // sheet从0开始
31 HSSFSheet sheet = wb.getSheetAt(sheetnum);
32 // 取得最后一行的行号
33 int rowNum = sheet.getLastRowNum() + 1;
34
35 // 行循环开始
36 for (int i = startrow; i < rowNum; i++) {
37 PageData varpd = new PageData();
38 // 行
39 HSSFRow row = sheet.getRow(i);
40 // 每行的最后一个单元格位置
41 int cellNum = row.getLastCellNum();
42
43 //列循环开始
44 for (int j = startcol; j < cellNum; j++) {
45 HSSFCell cell = row.getCell(Short.parseShort(j + ""));
46 String cellValue = null;
47
48 if (null != cell) {
49 // 判断excel单元格内容的格式,并对其进行转换,以便插入数据库
50 switch (cell.getCellType()) {
51 case 0:
52 cellValue = String.valueOf((int) cell.getNumericCellValue());
53 break;
54
55 case 1:
56 cellValue = cell.getStringCellValue();
57 break;
58
59 case 2:
60 cellValue = cell.getNumericCellValue() + "";
61 // cellValue = String.valueOf(cell.getDateCellValue());
62 break;
63
64 case 3:
65 cellValue = "";
66 break;
67
68 case 4:
69 cellValue = String.valueOf(cell.getBooleanCellValue());
70 break;
71
72 case 5:
73 cellValue = String.valueOf(cell.getErrorCellValue());
74 break;
75
76 }
77 } else {
78 cellValue = "";
79 }
80
81 varpd.put("var"+j, cellValue);
82 }
83 varList.add(varpd);
84 }
85 } catch (Exception e) {
86 System.out.println(e);
87 }
88
89 return varList;
90 }
91 }

最新文章

  1. Advanced Office Password Recovery安装后显示是英文版的
  2. 删除html元素
  3. 转:mysql中int、bigint、smallint 和 tinyint的区别与长度的含义
  4. 一个Public的字段引起的,谈谈继承中的new
  5. 关于level DB的相关资料
  6. Redis容量及使用规划(转)
  7. javascript 拷贝
  8. iOS开发-布局基础
  9. Kivy A to Z -- 怎样从python代码中直接訪问Android的Service
  10. CentOS使用ufw的方法
  11. Jquery使用tbody编辑功能实现table输入计算功能
  12. ASP.NET MVC3快速入门——第五节、从控制器访问模型中的数据
  13. QReadWriteLock读写锁的一点测试(它是逻辑锁,并没有与实物相联系),只有锁住了读,才允许再次读,否则一概不允许
  14. C Traps and Pitfallss
  15. Java+7入门经典 -1 简介
  16. ZOJ 3931 Exact Compression
  17. CocoaChina(总结)升级到xcode8遇到的问题及解决方案
  18. springmvc源码分析——入门看springmvc的加载过程
  19. zabbix 添加用户 配置权限
  20. RSA 加密算法 Java 公钥加密私钥解密 和 私钥加密公钥解密 的特点

热门文章

  1. js引入样式资源报错
  2. SpringBoot启动流程简要分析
  3. CTF Show web入门 1——20(信息收集)wp和一些感想
  4. Win10使用打印机0x0000011b错误 如何处理(没有KB5005565补丁如何解决??)
  5. Visual Studio 2010安装
  6. nginx配置透明代理
  7. 解决uniapp 使用自带 switch 双向绑定视图不更新的问题
  8. PostgreSQL Win10 安装、创建表并添加数据(安装细节+常见错误避坑)
  9. The `.update()` method does not support writable nestedfields by default. Write an explicit `.update()` method for serializer `...`, or set `read_only=True` on nested serializer fields.解决办法
  10. 打卡node day02--url qs 内置模块