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();