GCexce导出未自动换行(DOCXLS-7828)
本帖最后由 Lynn.Dou 于 2023-3-22 16:20 编辑Excel中换行了 但是使用GCExcel导出pdf 的时候没有换行,但是名称比较长的又换行了,请问这个怎么解决?
经调研,原因是A76单元格是富文本,GcExcel在导出pdf时未对富文本做换行处理,此问题计划在V6.0.6修复。
目前有个workaround方案:
从json数据来看,该单元格使用的同种字体,所以其实可以不使用富文本,改用普通单元格,先解决此问题。
附件为修改后导出的ssjson文件,此时导入至Gcexcel中再导出pdf,不会出现不换行问题。
此workaround方案供参考。
您好,您提供一下原始的excel文件,这边实际验证看看。 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
问题已复现,已将此问题记录下来进一步调研原因,待有进展在贴中通知您。
本贴先做保留处理。
麻烦尽快排查一下,项目快要上线了,非常紧急 感谢 已将问题高优先级处理,有进展会第一时间贴中通知您。 Lynn.Dou 发表于 2023-3-22 09:01
已将问题高优先级处理,有进展会第一时间贴中通知您。
请问这个问题有进展吗? Lynn.Dou 发表于 2023-3-23 13:53
经调研,原因是A76单元格是富文本,GcExcel在导出pdf时未对富文本做换行处理,此问题计划在V6.0.6修复。
...
不设置富文本正常显示,但是我这个单元格需要富文本格式,望尽快修复。 如上个回复所述,此问题计划在v6.0.6修复,具体发布时间还未确认。
待发布后您可以通过maven升级测试下。
页:
[1]