Commit 066082092b568302573cb005b3e1f30dda41bdcb

Authored by 徐烜
1 parent 217aeefa

时刻表数据带线路版本v2.3

1、修正导入bug,支持只有站名的形式,内部自动加{->数字}格式
2、修正导出格式,站名不带{->数字}格式
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;
... ...