找回密码
 立即注册

QQ登录

只需一步,快速开始

tianshun2021
金牌服务用户   /  发表于:2023-3-20 18:06  /   查看:3173  /  回复:9
1金币
本帖最后由 Lynn.Dou 于 2023-3-22 16:20 编辑

image.png431825560.png image.png339103698.png

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

最佳答案

查看完整内容

经调研,原因是A76单元格是富文本,GcExcel在导出pdf时未对富文本做换行处理,此问题计划在V6.0.6修复。 目前有个workaround方案: 从json数据来看,该单元格使用的同种字体,所以其实可以不使用富文本,改用普通单元格,先解决此问题。 附件为修改后导出的ssjson文件,此时导入至Gcexcel中再导出pdf,不会出现不换行问题。 此workaround方案供参考。

9 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-20 18:06:53
来自 8#
经调研,原因是A76单元格是富文本,GcExcel在导出pdf时未对富文本做换行处理,此问题计划在V6.0.6修复。

目前有个workaround方案:
从json数据来看,该单元格使用的同种字体,所以其实可以不使用富文本,改用普通单元格,先解决此问题。
image.png583219909.png
附件为修改后导出的ssjson文件,此时导入至Gcexcel中再导出pdf,不会出现不换行问题。
image.png52931822.png
此workaround方案供参考。


afterSs.ssjson

472.21 KB, 下载次数: 929

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-20 19:14:21
2#
您好,您提供一下原始的excel文件,这边实际验证看看。
回复 使用道具 举报
tianshun2021
金牌服务用户   /  发表于:2023-3-21 11:27:53
3#
Lynn.Dou 发表于 2023-3-20 19:14
您好,您提供一下原始的excel文件,这边实际验证看看。

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

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

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

  47.         IWorksheet resultSheet = workbook.getWorksheets().get("证书结果页");
  48.         resultSheet.getPageSetup().setFitToPagesWide(1);
  49.         int FirstPageNumber = 3;
  50.         resultSheet.getPageSetup().setFirstPageNumber(FirstPageNumber);
  51.         resultSheet.getPageSetup().setLeftMargin(leftMargin);
  52.         resultSheet.getPageSetup().setRightMargin(rightMargin);
  53.         resultSheet.getPageSetup().setLeftHeader(lHeader + line);
  54.         resultSheet.getPageSetup().setTopMargin(85);
  55.         resultSheet.getPageSetup().setCenterHeader(cHeader);
  56.         resultSheet.getPageSetup().setRightHeader(rHeader);
  57.         resultSheet.getPageSetup().setLeftFooter(notice + cFooter);
  58.         workbook.save("d:/test.pdf", SaveFileFormat.Pdf);
  59.     }
复制代码

ss.json

518.14 KB, 下载次数: 892

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-21 17:46:27
4#
问题已复现,已将此问题记录下来进一步调研原因,待有进展在贴中通知您。
本贴先做保留处理。
回复 使用道具 举报
tianshun2021
金牌服务用户   /  发表于:2023-3-21 18:11:24
5#
Lynn.Dou 发表于 2023-3-21 17:46
问题已复现,已将此问题记录下来进一步调研原因,待有进展在贴中通知您。
本贴先做保留处理。

麻烦尽快排查一下,项目快要上线了,非常紧急 感谢
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-22 09:01:58
6#
已将问题高优先级处理,有进展会第一时间贴中通知您。
回复 使用道具 举报
tianshun2021
金牌服务用户   /  发表于:2023-3-23 11:25:40
7#
Lynn.Dou 发表于 2023-3-22 09:01
已将问题高优先级处理,有进展会第一时间贴中通知您。

请问这个问题有进展吗?
回复 使用道具 举报
tianshun2021
金牌服务用户   /  发表于:2023-3-23 16:37:32
9#
Lynn.Dou 发表于 2023-3-23 13:53
经调研,原因是A76单元格是富文本,GcExcel在导出pdf时未对富文本做换行处理,此问题计划在V6.0.6修复。

...

不设置富文本正常显示,但是我这个单元格需要富文本格式,望尽快修复。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-23 16:41:15
10#
如上个回复所述,此问题计划在v6.0.6修复,具体发布时间还未确认。
待发布后您可以通过maven升级测试下。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部