Excel转PDF,单元格内容显示不全

版本:23.8
编程语言:java

问题截图:
image.png (85.4 KB)

源文件:

image.png (85.4 KB)

@ZhonghaoSun

在将Excel文件转换为PDF时,如果单元格内容显示不全,通常是由于单元格宽度不足或字体设置不当导致的。为了解决这个问题,您可以采取以下措施:

  1. 调整列宽:确保在转换之前,Excel中的列宽足够,以容纳单元格中的所有内容。您可以手动调整列宽,或者使用代码自动调整。

  2. 设置PdfSaveOptions:在使用Aspose.Cells进行转换时,可以设置PdfSaveOptions的相关属性,例如OnePagePerSheetAllColumnsInOnePagePerSheet,以确保所有内容都能在PDF中正确显示。

  3. 使用默认字体:确保在PdfSaveOptions中设置合适的默认字体,以避免因字体不兼容而导致的内容显示问题。

以下是一个简单的代码示例,展示如何设置这些选项:

import com.aspose.cells.*;

public class ExcelToPdf {
    public static void main(String[] args) {
        try {
            // 加载Excel文件
            Workbook workbook = new Workbook("input.xlsx");

            // 创建PdfSaveOptions实例
            PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
            pdfSaveOptions.setOnePagePerSheet(true); // 每个工作表输出为一页
            pdfSaveOptions.setAllColumnsInOnePagePerSheet(true); // 所有列输出到一页

            // 设置默认字体
            pdfSaveOptions.setDefaultFont("Arial");

            // 保存为PDF文件
            workbook.save("output.pdf", pdfSaveOptions);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

请根据您的具体需求调整代码中的参数。通过以上步骤,您应该能够有效解决Excel转换为PDF时内容显示不全的问题。如果您还有其他疑问或需要进一步的帮助,请随时联系我!

@ZhonghaoSun
你能上传你的源文件么? 我们需要源文件来定位问题?
另外请确认你的服务器上是否安装了所需的字体?

@ZhonghaoSun,

顺便问一下,您能否尝试对指定的工作表调用 autoFitRows() 方法,看是否会有所不同?
例如

//获取工作表。
Worksheet worksheet = workbook.getWorksheets().get("MySheet");

//应用自动调整行高以完整显示单元格内容。
worksheet.autoFitRows();

........

如果您仍然遇到问题,请按照我们的要求,将您的模板Excel文件压缩后附加在这里。我们会尽快检查您的问题。

星矿科技(北京)有限公司_2025-09-04.zip (14.2 KB)

你好,这是Excel源文件

@ZhonghaoSun
通过使用样例文件和以下样例代码在最新版本v25.8上进行测试,我们可以得到正确的结果。请查看附件。 out_java.pdf (86.3 KB)

Workbook wb = new Workbook(filePath + "星矿科技(北京)有限公司_2025-09-04.xlsx");
WorksheetCollection sheets = wb.getWorksheets();
int sheetCount = sheets.getCount();
for (int i = 0; i < sheetCount; i++)
{
	Worksheet sheet = sheets.get(i);
	sheet.autoFitRows(true);
}

PdfSaveOptions options = new PdfSaveOptions();
options.setOnePagePerSheet(true);
wb.save(filePath + "out_java.pdf", options);

我们建议您尝试使用我们的最新版本:Aspose.Cells for Java 25.8.

如果您仍然发现问题,请分享您的测试代码,以便我们重现问题,我们很快就会检查。

能否通过修改文件方式来兼容

@ZhonghaoSun
可以通过修改文件来满足需求。以下样例代码只调整了设置了自动行高的行。你可以在excel里手动拖动这些行来设置行高,这些行就变成设置了自定义行高的行。

sheet.autoFitRows(true);

请参考相关的API说明。