文件读取方法(txt.excel)

txt:

URL url = PriceConfigReader.class.getResource("/city-config.txt");
   BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(url.getPath()), "UTF-8"));
   String lineTxt = null;
   // load城市级别
   for(int level=0; (lineTxt = br.readLine()) != null; level++){
    Set<String> cities = new HashSet<String>();
    String[] names = lineTxt.split(",");
                for (String name : names) {
                 String b=name.trim().replace("市","");
                 cities.add(b);
                }
                if(cities.size() > 0) {
                 cityMap.put(level, cities);
                }
   }
   br.close();


excel:

URL url = PriceConfigReader.class.getResource("/price-config.xlsx");
   InputStream fis = new FileInputStream(url.getPath());
   XSSFWorkbook wb = new XSSFWorkbook(fis);
   // load工艺项目价格
   for(int sht=0; sht<8; sht++) {
    XSSFSheet sheet = wb.getSheetAt(sht); 
    int maxRow = sheet.getLastRowNum(); // 下标从0开始
    int cityLevelCount = 6; // 不同城市级别有不同价格
    if(sht == 7) // 主材料
     cityLevelCount = 1;
    for(int level = 1; level<=3; level++) {
     for(int cityLevel=0; cityLevel < cityLevelCount; cityLevel++) {
      List<List<Object>> result = new ArrayList<List<Object>>(32);
      for(int r=2; r <= maxRow; r++) {
       Row row = sheet.getRow(r);
       if(row == null) break;
       Cell name = row.getCell(1);
       int priceCol = (level-1)*6 + cityLevel + 2;
       if(sht == 7) priceCol = level + 1;
       Cell price = row.getCell(priceCol);
       if(name == null || price == null)
        continue;
       List<Object> item = new ArrayList<Object>(2);
       item.add(name.getStringCellValue());
       item.add(price.getNumericCellValue());
       result.add(item);
      }
      String key = String.format("sheet_%d_level_%d_city_%d", sht, level, cityLevel);
      data.put(key, result);
      System.out.println("add data " + key);
     }
    }
   }
   
   fis.close();
   wb.close();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值