easyexcel 读取指定行数据_easyexcel 读写demo

1 packagecn.tele.demo;2

3 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.FileNotFoundException;6 importjava.io.FileOutputStream;7 importjava.io.IOException;8 importjava.io.InputStream;9 importjava.io.OutputStream;10 importjava.sql.SQLException;11 importjava.util.List;12

13 importorg.apache.commons.dbutils.QueryRunner;14 importorg.apache.commons.dbutils.handlers.BeanHandler;15 importorg.apache.commons.dbutils.handlers.BeanListHandler;16 importorg.junit.Test;17

18 importcom.alibaba.excel.ExcelReader;19 importcom.alibaba.excel.ExcelWriter;20 importcom.alibaba.excel.metadata.Sheet;21 importcom.alibaba.excel.support.ExcelTypeEnum;22

23 /**

24 * 读取Excel25 *26 *@authorTele27 *28 */

29

30 public classDemo {31

32 /**

33 * 读取excel并插入mysql中 sheet第一个参数为sheetNo代表sheet的编号,第二个参数表示从第几行开始读,最小是1, new34 * Sheet(1,0,Student.class)发现无输出结果35 *36 *@throwsFileNotFoundException37 */

38 @SuppressWarnings("deprecation")39 @Test40 public void readExcel() throwsFileNotFoundException {41 InputStream inputStream = new FileInputStream("d:/excelTest/test.xlsx");42 try{43 //解析每行结果在listener中处理

44 ExcelListener listener = newExcelListener();45

46 ExcelReader excelReader = new ExcelReader(inputStream, ExcelTypeEnum.XLSX, null, listener);47 excelReader.read(new Sheet(1, 1, Student.class));48 } catch(Exception e) {49

50 } finally{51 try{52 inputStream.close();53 } catch(IOException e) {54 e.printStackTrace();55 }56 }57 }58

59 /**

60 * 查询测试61 */

62 @Test63 public voidqueryByGroup() {64 QueryRunner runner = newQueryRunner(JdbcUtils.getDS());65 String sql = "SELECT * from student group by teacher,id";66 try{67 List query = runner.query(sql, new BeanListHandler(Student.class));68 for(Student student : query) {69 System.out.println(student.getName() + "----" +student.getTeacher());70 }71

72 } catch(SQLException e) {73 e.printStackTrace();74 }75 }76

77 /**

78 * 将查询结果写出到excel中 在写excel的过程中,含有模型的写入,对于sheet的第二个参数是忽略的,全部从左侧第一行进行读写79 */

80 @Test81 public voidwriteExcel() {82 try{83 OutputStream os = new FileOutputStream(new File("d:/excelTest/new.xlsx"));84 ExcelWriter writer = new ExcelWriter(os, ExcelTypeEnum.XLSX, true);85

86 //2代表sheetNo,不可以重复,如果两个sheet的sheetNo相同则输出时只会有一个sheet

87 Sheet sheet1 = new Sheet(1, 5, Student.class);88 sheet1.setSheetName("第一个sheet");89

90 Sheet sheet2 = new Sheet(2, 1, Student.class);91 sheet2.setSheetName("第二个sheet");92

93 QueryRunner runner = newQueryRunner(JdbcUtils.getDS());94 String sql = "SELECT * from student group by teacher,id";95

96 List result = runner.query(sql, new BeanListHandler(Student.class));97 writer.write(result, sheet1);98 //writer.write(result,sheet2);

99

100 writer.finish();101 System.out.println("数据已写出");102 } catch(FileNotFoundException e) {103 e.printStackTrace();104 } catch(SQLException e) {105 e.printStackTrace();106 }107

108 }109

110 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值