使用aspose生成的excel文件不支持自适应行高

我们使用aspose生成的excel文件不支持自适应行高
image.png (4.7 KB)

代码如下:

import com.aspose.cells.CountryCode;
import com.aspose.cells.LoadOptions;
import com.aspose.cells.MemorySetting;
import com.aspose.cells.Workbook;
import com.aspose.cells.WorkbookDesigner;

public class Demo {
// 单元格数据
private static final String docData = “ooooooooooooooooooooooooooooooooooooooooooooooooooooofffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffddddddddddddddddddddddddddddsdflskjfls;jfl;dskjfs;jfds;jfds;djfds;fjkdjfdfdfdfdfdfdfdfxuechaochao \nHansaallee 205 \nD-40549 Düsseldorf\nWEEE Reg. Number – 39372368.\nRegistered Office: Düsseldorf, Register Court Düsseldorf, HRB 72992, \nManaging Director: Mr. Bo PENG *Tax no.: 103 5734 1583 * Tax ID: DE 221 644 379”;
public static void main(String[] args) throws Exception {
// 模板文件地址
String templateFilePath = “D:\demo5\文档生成合并单元格temp.xlsx”;
// 生成的文件地址
String objectivesFilePath = “D:\demo5\文档生成合并单元格temp——out_1.xlsx”;
LoadOptions opt = new LoadOptions();
opt.setParsingFormulaOnOpen(false);
opt.setRegion(CountryCode.USA);
// 设置为大文件模式
opt.setMemorySetting(MemorySetting.MEMORY_PREFERENCE);
Workbook template = new Workbook(templateFilePath,opt);
template.calculateFormula(true);
template.getSettings().setEnableMacros(true);
template.getSettings().setReCalculateOnOpen(true);
template.getSettings().setRecalculateBeforeSave(true);
WorkbookDesigner designer = new WorkbookDesigner();
designer.setCalculateFormula(true);
designer.setWorkbook(template);
designer.setDataSource(“COMPANY_ADDRESS”,docData);
designer.process();
designer.getWorkbook().save(objectivesFilePath);
}
}

具体附件如下:
demo.zip (48.1 KB)

@yankang,

感谢您提供示例文件和屏幕截图。

这不是 API 的问题。 如果您能看到 A1 单元格(具有智能标记),则它的行高为 15(20 像素)。 此外,如果您可以检查输出文件中的 A1 单元格,它的行高是相同的。 此外,您不能为合并的单元格自动调整行。 您可以通过尝试手动自动调整第一行来在 MS Excel 中确认此行为,您还会注意到,MS Excel 也不会扩展行高。 因此,这不是 Aspose.Cells API 的问题。 根据您的要求,您必须相应地手动扩展合并单元格的行高,或者使用 AutoFitter 选项设置自动适应合并单元格。 请参阅更新的代码段供您参考:
例如
示例代码:

        ......
        LoadOptions opt = new LoadOptions();
        opt.setParsingFormulaOnOpen(false);
        opt.setRegion(CountryCode.USA);
        // 设置为大文件模式
        opt.setMemorySetting(MemorySetting.MEMORY_PREFERENCE);
        Workbook template = new Workbook(templateFilePath,opt);
        template.calculateFormula(true);
        template.getSettings().setEnableMacros(true);
        template.getSettings().setReCalculateOnOpen(true);
        template.getSettings().setRecalculateBeforeSave(true);
        WorkbookDesigner designer = new WorkbookDesigner();
        designer.setCalculateFormula(true);
        designer.setWorkbook(template);
        designer.setDataSource("COMPANY_ADDRESS",docData);
        designer.process();

        //Set row height of the first (merged) row to show all the contents in the cell
        //designer.getWorkbook().getWorksheets().get(0).getCells().setRowHeight(0,285);

        //Or auto-fit row with respect to merged cell.
        AutoFitterOptions options = new AutoFitterOptions();
        options.setAutoFitMergedCellsType(AutoFitMergedCellsType.FIRST_LINE);
        designer.getWorkbook().getWorksheets().get(0).autoFitRows(options);

        designer.getWorkbook().save(objectivesFilePath);
        .....

希望这个对你有帮助。

十分感谢您的答复!可以解决我们的问题

@yankang,

很高兴知道您的问题已由建议的代码段解决。 如果您有其他疑问或问题,请随时给我们回信,我们将很乐意尽快为您提供帮助。