Commit 066082092b568302573cb005b3e1f30dda41bdcb
1 parent
217aeefa
时刻表数据带线路版本v2.3
1、修正导入bug,支持只有站名的形式,内部自动加{->数字}格式
2、修正导出格式,站名不带{->数字}格式
Showing
1 changed file
with
46 additions
and
1 deletions
src/main/java/com/bsth/service/schedule/datatools/TTInfoDetailDataToolsImpl.java
| ... | ... | @@ -128,7 +128,8 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail |
| 128 | 128 | if (i == 0) { |
| 129 | 129 | colList.add(PoiUtils.getStringValueFromCell(cell).trim()); |
| 130 | 130 | } else { |
| 131 | - colList.add(PoiUtils.getStringValueFromCell(cell) + i); | |
| 131 | + // 站点名字后加->数字形式标示成不同的字段 | |
| 132 | + colList.add(PoiUtils.getStringValueFromCell(cell).trim().replaceAll("(->\\d+)", "") + "->" + i); | |
| 132 | 133 | } |
| 133 | 134 | } |
| 134 | 135 | |
| ... | ... | @@ -229,6 +230,50 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail |
| 229 | 230 | |
| 230 | 231 | DataToolsFile file = dataToolsService.exportData(ktrParms); |
| 231 | 232 | |
| 233 | + // 将导出的数据表头重新处理一遍,祛除->数字 | |
| 234 | + | |
| 235 | + // poi api,并读取第一行数据,组合成站点列表,逗号分隔 | |
| 236 | + org.apache.poi.ss.usermodel.Workbook poi_workbook; | |
| 237 | + org.apache.poi.ss.usermodel.Sheet poi_sheet; | |
| 238 | + if (DataToolsFileType.XLS.isThisType(file.getFile())) { | |
| 239 | + poi_workbook = DataToolsFileType.XLS.getWorkBook(file.getFile()); | |
| 240 | + } else if (DataToolsFileType.XLSX.isThisType(file.getFile())) { | |
| 241 | + poi_workbook = DataToolsFileType.XLSX.getWorkBook(file.getFile()); | |
| 242 | + } else { | |
| 243 | + throw new Exception("不是xls xlsx文件!"); | |
| 244 | + } | |
| 245 | + poi_sheet = poi_workbook.getSheet("Sheet1"); | |
| 246 | + List<String> colList = new ArrayList<>(); | |
| 247 | + int rownums = poi_sheet.getLastRowNum() + 1; | |
| 248 | + int colnums = poi_sheet.getRow(0).getLastCellNum(); | |
| 249 | + Row firstrow = poi_sheet.getRow(0); | |
| 250 | + for (int i = 0; i < colnums; i++) { | |
| 251 | + org.apache.poi.ss.usermodel.Cell cell = firstrow.getCell(i); | |
| 252 | + colList.add(PoiUtils.getStringValueFromCell(cell).trim().replaceAll("(->\\d+)", "")); | |
| 253 | + } | |
| 254 | + | |
| 255 | + // jxl api | |
| 256 | + File fileCal = new File(file.getFile().getAbsolutePath() + "_rowHeadReplace.xls"); | |
| 257 | + WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal); | |
| 258 | + WritableSheet sheet1 = writableWorkbook.createSheet("Sheet1", 0); | |
| 259 | + for (int i = 0; i < colnums; i++) { // 第一行数据 | |
| 260 | + sheet1.addCell(new Label(i, 0, colList.get(i))); | |
| 261 | + } | |
| 262 | + for (int i = 1; i < rownums; i++) { // 第二行开始 | |
| 263 | + for (int j = 0; j < colnums; j++) { | |
| 264 | + // poi读 | |
| 265 | + String cellContent = PoiUtils.getStringValueFromCell( | |
| 266 | + poi_sheet.getRow(i).getCell(j) | |
| 267 | + ).replaceAll("\\s*", ""); | |
| 268 | + // jxl写 | |
| 269 | + sheet1.addCell(new Label(j, i, cellContent)); | |
| 270 | + } | |
| 271 | + } | |
| 272 | + writableWorkbook.write(); | |
| 273 | + writableWorkbook.close(); | |
| 274 | + | |
| 275 | + file.setFile(fileCal); | |
| 276 | + | |
| 232 | 277 | LOGGER.info("//---------------- 导出时刻表明细 success... ----------------//"); |
| 233 | 278 | |
| 234 | 279 | return file; | ... | ... |