excel,csv快速根据列名获取对应行的值

1/excel根据表头读取列值

<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.6.1</version> </dependency>

转自:https://hutool.cn/docs/#/poi/Excel%E8%AF%BB%E5%8F%96-ExcelReader

  1. 读取Excel中所有行和列,都用列表表示

    ExcelReader reader = ExcelUtil.getReader("d:/aaa.xlsx");
    List<List<Object>> readAll = reader.read();
  2. 读取为Map列表,默认第一行为标题行,Map中的key为标题,value为标题对应的单元格值。

    ExcelReader reader = ExcelUtil.getReader("d:/aaa.xlsx");
    List<Map<String,Object>> readAll = reader.readAll();
  3. 读取为Bean列表,Bean中的字段名为标题,字段值为标题对应的单元格值。

    ExcelReader reader = ExcelUtil.getReader("d:/aaa.xlsx");
    List<Person> all = reader.readAll(Person.class);

2、csv读取

@RequestParam("file") MultipartFile file
CsvReader csvReader = new CsvReader(file.getInputStream(), Charset.forName("gbk"));
uploadUtils.csvResolve(csvReader);
public List<OrderExcelVO> csvResolve(CsvReader csvReader) throws IOException {
List<OrderExcelVO> list = new ArrayList<>();
csvReader.readHeaders();
OrderExcelVO orderExcelVO;
while(csvReader.readRecord()){
orderExcelVO=new OrderExcelVO();
orderExcelVO.setMemberName(csvReader.get("收货人姓名"));
orderExcelVO.setPhone(csvReader.get("联系手机"));
orderExcelVO.setShopName(csvReader.get("店铺名称"));
list.add(orderExcelVO);
}
return list;
}
posted @ 2019-07-31 15:14  送快递的尚尚  阅读(1272)  评论(0编辑  收藏  举报