mobile CCTV,mobile surveillance,police body worn cameras

标题: 写Excel文件后,电脑上必须手动插拔一次连接线才能看到文件变化,什么原因 [打印本页]

author: cus6    time: 2023-10-19 20:27
标题: 写Excel文件后,电脑上必须手动插拔一次连接线才能看到文件变化,什么原因
代码如下,做了Flush之类的操作依然不行:
  1. public static void exportEquipBindToExcel(List<EquipBind> equipBindList, String filePath,Context context) {
  2.     try (HSSFWorkbook workbook = new HSSFWorkbook ();
  3.          FileOutputStream fileOut = new FileOutputStream(filePath)) {
  4.         Sheet sheet = workbook.createSheet("设备数据");
  5.         String yearMonth=getCurrentYearMonth();


  6.         // 创建标题行
  7.         Row headerRow = sheet.createRow(0);
  8.         String[] headers = {"a", "b"};

  9.         for (int i = 0; i < headers.length; i++) {
  10.             Cell cell = headerRow.createCell(i);
  11.             cell.setCellValue(headers[i]);
  12.         }
  13.         Map<Integer, String> equipTypeMap = new HashMap<>();

  14.         EquipTypeDao equipTypeDao=new EquipTypeDao(context);
  15.         equipTypeDao.open();
  16.         List<EquipType> equipTypeList=equipTypeDao.getEquipTypes("",new String[]{},"");
  17.         for (EquipType equipType : equipTypeList) {
  18.             long id = equipType.getId();
  19.             String equipTypeName = equipType.getEquipTypeName();

  20.             // 将 Id 和 EquipTypeName 存储到 Map 中
  21.             equipTypeMap.put((int)id, equipTypeName);
  22.         }

  23.         // 填充数据
  24.         for (int i = 0; i < equipBindList.size(); i++) {
  25.             EquipBind equipBind = equipBindList.get(i);
  26.             Row row = sheet.createRow(i + 1); // 创建新行,注意标题行已经占用了第一行
  27.             row.createCell(0).setCellValue(i+1);
  28.             row.createCell(1).setCellValue(equipBind.getSecondaryNumber());
  29.         }
  30.         equipTypeDao.close();
  31.         workbook.write(fileOut);

  32.         fileOut.flush();
  33.         fileOut.getFD().sync(); // 强制刷新文件系统缓存

  34.         fileOut.close();
  35.         workbook.close();
  36.         MediaScannerConnection.scanFile(context, new String[] { filePath}, null, null);


  37.     } catch (IOException e) {
  38.         e.printStackTrace();
  39.     }
  40. }
copycode






欢迎光临 mobile CCTV,mobile surveillance,police body worn cameras (http://bbs.besovideo.com:8067/) Powered by Discuz! X3.2