tianshun2021 发表于 2023-3-20 18:06:52

GCexce导出未自动换行(DOCXLS-7828)

本帖最后由 Lynn.Dou 于 2023-3-22 16:20 编辑



Excel中换行了 但是使用GCExcel导出pdf 的时候没有换行,但是名称比较长的又换行了,请问这个怎么解决?

Lynn.Dou 发表于 2023-3-20 18:06:53

经调研,原因是A76单元格是富文本,GcExcel在导出pdf时未对富文本做换行处理,此问题计划在V6.0.6修复。

目前有个workaround方案:
从json数据来看,该单元格使用的同种字体,所以其实可以不使用富文本,改用普通单元格,先解决此问题。

附件为修改后导出的ssjson文件,此时导入至Gcexcel中再导出pdf,不会出现不换行问题。

此workaround方案供参考。


Lynn.Dou 发表于 2023-3-20 19:14:21

您好,您提供一下原始的excel文件,这边实际验证看看。

tianshun2021 发表于 2023-3-21 11:27:53

Lynn.Dou 发表于 2023-3-20 19:14
您好,您提供一下原始的excel文件,这边实际验证看看。

这是我用GCEXCEL导出的方法,附件是excel的ss.json文件
@Test
    public void previewPDFTest() {
      Workbook workbook = new Workbook();
      workbook.open("d:/ss.json");
      IWorksheet worksheet0 = workbook.getWorksheets().get(0);
      // 隐藏第一个sheet
      worksheet0.setVisible(Visibility.Hidden);
      IWorksheet contentSheet = workbook.getWorksheets().get("原始记录数据页");
      if (contentSheet != null) {
            contentSheet.setVisible(Visibility.Hidden);
      }
      IWorksheet patchSheet = workbook.getWorksheets().get("原始记录批量导入模板");
      if (patchSheet != null) {
            patchSheet.setVisible(Visibility.Hidden);
      }
      // 把证书基础sheet业移到第一页
      workbook.getWorksheets().get("证书信息").moveBefore(workbook.getWorksheets().get(0));
      // 证书页sheet
      IWorksheet sheet0 = workbook.getWorksheets().get(0);

      // 设置页眉页脚首页不同
      sheet0.getPageSetup().setDifferentFirstPageHeaderFooter(true);
      String cn = "RT";
      String ct = "1234567";

      double leftMargin = 50.5;
      double rightMargin = 50.5;
      String yearCHN = "一";
      String cHeader = "";
      String cFooter = "";
      String notice = "";
      String line = "—————————————————————————————————————————————";
      //证书模板页眉
      String lHeader = "&12&\"黑体\"证书编号" + cn + "字 " + ct + " 号\n&11&\"Times New Roman\"CertificateNo.\n\n\n\n&11&\"黑体\"";
      String rHeader = "&12&\"黑体\"第&P页    共&N页\nPage         of &12&\"Times New Roman\"            ";
      sheet0.getPageSetup().setLeftMargin(leftMargin);
      sheet0.getPageSetup().setRightMargin(rightMargin);
      sheet0.getPageSetup().setLeftHeader(lHeader);
      sheet0.getPageSetup().setRightHeader(rHeader);
      List<Integer> jd = Arrays.asList(0, 1, 2, 3, 4, 8, 9, 10);//检定证书类型
      List<Integer> jz = Arrays.asList(5, 6, 11);//检测证书类型
      List<Integer> jc = Arrays.asList(7, 12);//校准证书类型
      notice = "&12&\"宋体\"敬告:1、被检定仪器修理后,请立即进行检定。\n      2、在使用过程中,如对被检定仪器的技术指标产生怀疑,请重新检定。\n";
      cHeader = "\n\n\n &18&\"黑体\"&B检 定 数 据 / 结 果\n&11&\"黑体\"Data / Results of Verification";
      cFooter = "&11&\"黑体\"" + line + "\n&12&\"宋体\"注:未经本院书面批准,不得部分复制此检定证书(整体复制除外)。\n" +
                "&12&\"Times New Roman\"" +
                "Note: This certificate of verification shall not be reproduced except in full, without the written\napproval of the laboratory.";
      sheet0.getPageSetup().setLeftFooter(cFooter);

      IWorksheet resultSheet = workbook.getWorksheets().get("证书结果页");
      resultSheet.getPageSetup().setFitToPagesWide(1);
      int FirstPageNumber = 3;
      resultSheet.getPageSetup().setFirstPageNumber(FirstPageNumber);
      resultSheet.getPageSetup().setLeftMargin(leftMargin);
      resultSheet.getPageSetup().setRightMargin(rightMargin);
      resultSheet.getPageSetup().setLeftHeader(lHeader + line);
      resultSheet.getPageSetup().setTopMargin(85);
      resultSheet.getPageSetup().setCenterHeader(cHeader);
      resultSheet.getPageSetup().setRightHeader(rHeader);
      resultSheet.getPageSetup().setLeftFooter(notice + cFooter);
      workbook.save("d:/test.pdf", SaveFileFormat.Pdf);
    }

Lynn.Dou 发表于 2023-3-21 17:46:27

问题已复现,已将此问题记录下来进一步调研原因,待有进展在贴中通知您。
本贴先做保留处理。

tianshun2021 发表于 2023-3-21 18:11:24

Lynn.Dou 发表于 2023-3-21 17:46
问题已复现,已将此问题记录下来进一步调研原因,待有进展在贴中通知您。
本贴先做保留处理。

麻烦尽快排查一下,项目快要上线了,非常紧急 感谢

Lynn.Dou 发表于 2023-3-22 09:01:58

已将问题高优先级处理,有进展会第一时间贴中通知您。

tianshun2021 发表于 2023-3-23 11:25:40

Lynn.Dou 发表于 2023-3-22 09:01
已将问题高优先级处理,有进展会第一时间贴中通知您。

请问这个问题有进展吗?

tianshun2021 发表于 2023-3-23 16:37:32

Lynn.Dou 发表于 2023-3-23 13:53
经调研,原因是A76单元格是富文本,GcExcel在导出pdf时未对富文本做换行处理,此问题计划在V6.0.6修复。

...

不设置富文本正常显示,但是我这个单元格需要富文本格式,望尽快修复。

Lynn.Dou 发表于 2023-3-23 16:41:15

如上个回复所述,此问题计划在v6.0.6修复,具体发布时间还未确认。
待发布后您可以通过maven升级测试下。
页: [1]
查看完整版本: GCexce导出未自动换行(DOCXLS-7828)