如何使用 GroupDocs.Parser 在 Java 中预览 Excel 文件

如果您正在寻找 如何以编程方式预览 Excel 电子表格,您来对地方了。在本指南中,我们将演示如何使用 GroupDocs.Parser for Java 将 .xlsx 工作簿生成图像预览(PNG)——非常适合快速生成缩略图、共享快照或在您的应用程序中构建文档预览功能。

快速答案

  • “预览 Excel” 是什么意思? 生成每个工作表页面的图像文件(例如 PNG)。
  • 推荐使用哪种格式? PNG 提供无损质量,且非常适合作为网页缩略图。
  • 需要许可证吗? 开发阶段可使用免费试用版;生产环境需要商业许可证。
  • 可以更改图像分辨率吗? 可以——在 PreviewOptions 中调整 DPI。
  • 是否可以预览其他格式? GroupDocs.Parser 还支持 PDF、Word 以及多种图像类型。

什么是使用 GroupDocs.Parser 的 “how to preview Excel”?

GroupDocs.Parser 读取 Excel 工作簿,将每个工作表渲染为可视页面,并允许您将这些页面流式写入图像文件。这样就不需要 Office 互操作或第三方转换器。

为什么选择 GroupDocs.Parser 进行 Excel 预览?

  • 无需安装 Office – 可在任何服务器端 Java 环境中运行。
  • 支持大文件 – 按页流式处理,保持低内存占用。
  • 高质量输出 – 可控制 DPI、格式和渲染选项。
  • 跨格式灵活性 – 同一套 API 也适用于 PDF、Word 等文档。

前置条件

  • Java Development Kit(8 及以上)。
  • IDE,如 IntelliJ IDEA 或 Eclipse。
  • GroupDocs.Parser for Java SDK – 从 here 下载。
  • 要预览的示例 Excel 文件.xlsx)。
  • Maven 或 Gradle(可选,用于依赖管理)。

导入包

这些导入语句为您提供对解析器、预览选项和流处理实用工具的访问。

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.options.PreviewOptions;
import com.groupdocs.parser.options.PreviewFormats;
import com.groupdocs.parser.options.ICreatePageStream;
import com.groupdocs.parser.options.IPreviewPageRender;
import com.groupdocs.parser.results.PageRenderInfo;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.IOException;

生成电子表格页面预览的分步指南

步骤 1:初始化 Parser 实例

创建指向 Excel 工作簿的 Parser 对象。try‑with‑resources 块可确保解析器自动关闭。

try (Parser parser = new Parser("path/to/your/sample.xlsx")) {
    // Your subsequent code will go here
}

小技巧: 使用绝对路径或配置资源文件夹,以避免 FileNotFoundException

步骤 2:准备预览选项

定义每页的保存方式。ICreatePageStream 实现为每个工作表页面返回一个全新的 FileOutputStream

PreviewOptions previewOptions = new PreviewOptions(new ICreatePageStream() {
    @Override
    public OutputStream createPageStream(int pageNumber) {
        try {
            String outputPath = getOutputPath(pageNumber); // define this method later
            return new FileOutputStream(outputPath);
        } catch (IOException ex) {
            throw new RuntimeException("Error creating output stream", ex);
        }
    }
});

这一步就是 将 xlsx 转换为 png——流会将 PNG 数据写入磁盘。

步骤 3:附加委托以捕获渲染信息

如果需要获取每个渲染工作表的详细信息(例如尺寸、工作表名称),请注册回调。

final PageRenderInfo[] renderInfoHolder = {null}; // to store info

previewOptions.setPreviewPageRender(new IPreviewPageRender() {
    @Override
    public void previewPageRender(PageRenderInfo pageRenderInfo) {
        renderInfoHolder[0] = pageRenderInfo;
    }
});

步骤 4:指定输出格式和 DPI

选择 PNG 作为图像格式,并设置在质量与文件大小之间取得平衡的 DPI。

previewOptions.setPreviewFormat(PreviewFormats.Png); // PNG images
previewOptions.setDpi(150); // Higher DPI for better clarity

如需更小的缩略图(例如 96 DPI)或高分辨率打印(例如 300 DPI),请相应调整 DPI。

步骤 5:生成预览

完成所有配置后,调用 generatePreview。SDK 将遍历每个工作表并调用您提供的流。

parser.generatePreview(previewOptions);

步骤 6:定义 getOutputPath() 辅助方法

此方法根据页(工作表)编号构建文件名。您可以自行定制文件夹结构。

private static String getOutputPath(int pageNumber) {
    return "output/preview_page_" + pageNumber + ".png"; // Custom path
}

常见陷阱: 若事先未创建 output 目录,会导致 IOException。请在代码中创建该目录或确保其已存在。

完整工作示例(简化版)

下面是一个将所有代码片段组合在一起的紧凑示例,演示 创建 Excel 页面预览 的完整工作流。

try (Parser parser = new Parser("path/to/your/sample.xlsx")) {
    final PageRenderInfo[] renderInfoHolder = {null};

    PreviewOptions options = new PreviewOptions(new ICreatePageStream() {
        @Override
        public OutputStream createPageStream(int pageNumber) {
            try {
                return new FileOutputStream(getOutputPath(pageNumber));
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    });

    options.setPreviewPageRender(pageRenderInfo -> {
        renderInfoHolder[0] = pageRenderInfo;
    });
    options.setPreviewFormat(PreviewFormats.Png);
    options.setDpi(150);

    parser.generatePreview(options);
} catch (Exception e) {
    e.printStackTrace();
}

运行此代码后,您将在 output 文件夹中看到一系列 preview_page_1.pngpreview_page_2.png … 文件——每个文件对应原始 Excel 工作簿中的一个工作表。

常见问题与解决方案

问题原因解决方案
未生成图像getOutputPath 返回了无效目录确保目标文件夹存在,或使用 new File("output").mkdirs(); 创建
大文件出现内存溢出一次性加载整个工作簿使用流式方式(如示例所示)逐页处理
DPI 不正确未调用 setDpi 或使用默认值 (96)generatePreview 前调用 previewOptions.setDpi(yourDesiredValue);
不支持的格式试图预览损坏的 .xlsx 文件使用 Excel 验证文件,或在处理前调用 Parser.isSupported

常见问答

问:可以使用 GroupDocs.Parser 为 PDF 和图像生成预览吗?
答:可以,相同的 API 同样适用于 PDF、Word 文档以及多种图像格式。

问:如何更改输出图像格式?
答:调用 previewOptions.setPreviewFormat(PreviewFormats.Jpeg)(或 GifBmp 等)。

问:处理非常大的工作簿时性能会受影响吗?
答:SDK 采用流式分页,保持低内存占用。对于超大文件,可考虑并行批处理。

问:预览生成过程中如何处理错误?
答:如示例所示,将代码放在 try‑catch 块中并记录异常细节。若未使用 try‑with‑resources,请在 finally 中关闭流。

问:库是否需要安装 Microsoft Office?
答:不需要。GroupDocs.Parser 是纯 Java 解决方案,适用于任何支持 Java 8+ 的平台。

结论

现在,您已经掌握了使用 GroupDocs.Parser 预览 Excel 工作簿并 将 xlsx 转换为 png 的完整、可投入生产的方法。根据项目需求调整 DPI、输出文件夹或图像格式,并将此代码片段集成到更大的文档管理工作流中。

准备好下一步了吗?请查阅官方 documentation 了解高级渲染选项、受密码保护的文件以及批处理技术。


最后更新: 2026-02-06
测试环境: GroupDocs.Parser 23.11(撰写时的最新版本)
作者: GroupDocs