Execl转svg的时候,excel内容没有正确转化

test.zip (17.3 KB)
zip中是测试代码和模板,还有转换完的svg。
现在我用的是24.4版本,麻烦帮忙看下原因。

@jishangyang
通过使用样例文件和代码在最新版本v24.5上进行测试,我们可以复现问题。发现当转换文件到svg格式时,出现内容丢失和行高错误的问题。

我们已经在内部问题跟踪系统中打开了以下新问题单,并将根据Free Support Policies中提到的条款提供修复。

问题单号:CELLSJAVA-45988

@jishangyang ,

行高是自动高度的,并且缓存的行高不对,当你在Excel中打开源文件“test.xlsx“时,Excel会自动重算自动高度的行高。请添加如下代码excel.getWorksheets().get(i).autoFitRows(true); ,以达到同样的效果。

Code:

Workbook excel = new Workbook(imageBinary);
// ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
String uuid = UUID.randomUUID().toString();
for(int i = excel.getWorksheets().getActiveSheetIndex() ; i<excel.getWorksheets().getCount() ; i++){
    //仅重新计算自动高度的行高
    excel.getWorksheets().get(i).autoFitRows(true);    

    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    SvgSaveOptions svgSaveOptions = new SvgSaveOptions();
    svgSaveOptions.setSheetIndex(i);
    excel.save(byteArrayOutputStream, svgSaveOptions);
    FileOutputStream fos;
//            if(i == 5){
        fos = new FileOutputStream( new File(newFileName));
//            }else{
//                fos = new FileOutputStream( new File(newFileName1));
//            }

    byteArrayOutputStream.writeTo( fos );
    fos.close();
}

如果我加上这个自适应属性,我给我单元格设置了固定行高,超出部分不显示 这个场景是不是就不生效了

@jishangyang ,

是的,excel.getWorksheets().get(i).autoFitRows(true);不会对自定义的行高生效。