Как просматривать файлы Excel с помощью GroupDocs.Parser в Java

Если вы ищете how to preview Excel электронные таблицы программно, вы попали в нужное место. В этом руководстве мы пройдем процесс создания превью изображений (PNG) из книг .xlsx с помощью GroupDocs.Parser для Java — идеально подходит для быстрой генерации миниатюр, обмена снимками или создания функции предварительного просмотра документов в вашем приложении.

Быстрые ответы

  • What does “preview Excel” mean? Генерация файлов изображений (например, PNG), представляющих каждую страницу листа.
  • Which format is recommended? PNG обеспечивает без потерь качество и хорошо подходит для веб‑миниатюр.
  • Do I need a license? Бесплатная пробная версия подходит для разработки; для продакшн требуется коммерческая лицензия.
  • Can I change the image resolution? Да — измените DPI в PreviewOptions.
  • Is it possible to preview other formats? GroupDocs.Parser также поддерживает PDF, Word и многие типы изображений.

Что такое “how to preview Excel” с GroupDocs.Parser?

GroupDocs.Parser читает книги Excel, отображает каждый лист как визуальную страницу и позволяет передавать эти страницы в файлы изображений. Это устраняет необходимость в Office‑interop или сторонних конвертерах.

Почему использовать GroupDocs.Parser для превью Excel?

  • No Office installation required – работает в любой серверной среде Java.
  • Supports large files – передаёт страницы по одной, поддерживая низкое потребление памяти.
  • High‑quality output – контроль над DPI, форматом и параметрами рендеринга.
  • Cross‑format flexibility – тот же API работает с PDF, Word документами и другими форматами.

Предварительные требования

  • Java Development Kit (8 +).
  • IDE such as IntelliJ IDEA or Eclipse.
  • GroupDocs.Parser for Java SDK – загрузите с here.
  • Sample Excel file (.xlsx) you want to preview.
  • Maven or Gradle (optional) for dependency management.

Импорт пакетов

Эти импорты дают вам доступ к парсеру, параметрам превью и утилитам обработки потоков.

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

Создайте объект Parser, указывающий на вашу книгу Excel. Блок try‑with‑resources гарантирует автоматическое закрытие парсера.

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

Pro tip: Используйте абсолютный путь или настройте папку ресурсов, чтобы избежать 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);
        }
    }
});

На этом этапе вы convert xlsx to 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

Отрегулируйте DPI, если нужны более мелкие миниатюры (например, 96) или печать высокого разрешения (например, 300).

Шаг 5: Генерация превью

После настройки вызовите generatePreview. SDK пройдёт по каждому листу и вызовет предоставленный вами поток.

parser.generatePreview(previewOptions);

Шаг 6: Определение вспомогательного метода getOutputPath()

Этот метод формирует имя файла на основе номера страницы (листа). Не стесняйтесь настраивать структуру папок.

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

Common pitfall: Если забыть создать каталог output заранее, возникнет IOException. Создайте его программно или убедитесь, что он существует.

Полный рабочий пример (упрощённый)

Ниже представлена компактная версия, объединяющая все части. Она демонстрирует процесс create excel page preview от начала до конца.

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();
}

Запустите этот фрагмент, и вы найдёте серию файлов preview_page_1.png, preview_page_2.png, … в папке output — каждый представляет лист оригинальной книги Excel.

Распространённые проблемы и решения

IssueCauseFix
Нет сгенерированных изображенийgetOutputPath возвращает недопустимую директориюУбедитесь, что целевая папка существует, или создайте её с помощью new File("output").mkdirs();
Ошибка Out‑of‑memory при больших файлахЗагрузка всей книги целикомИспользуйте потоковый подход (как показано) и обрабатывайте страницы по одной
Неправильный DPIsetDpi не вызван или установлен по умолчанию (96)Вызовите previewOptions.setDpi(yourDesiredValue); перед generatePreview
Неподдерживаемый форматПопытка превью повреждённого .xlsxПроверьте файл в Excel или используйте Parser.isSupported перед обработкой

Часто задаваемые вопросы

Q: Могу ли я генерировать превью для PDF и изображений с помощью GroupDocs.Parser?
A: Да, тот же API работает с PDF, Word документами и многими форматами изображений.

Q: Как изменить формат выходного изображения?
A: Вызовите previewOptions.setPreviewFormat(PreviewFormats.Jpeg) (или Gif, Bmp и т.д.).

Q: Является ли производительность проблемой при очень больших книгах?
A: SDK передаёт страницы потоково, что сохраняет низкое потребление памяти. Для огромных файлов рассмотрите обработку параллельными пакетами.

Q: Как обрабатывать ошибки во время генерации превью?
A: Оберните код в блоки try‑catch (как показано) и журналируйте детали исключения. Убедитесь, что потоки закрыты в блоке finally, если вы не используете try‑with‑resources.

Q: Требуется ли для библиотеки установка Microsoft Office?
A: Нет. GroupDocs.Parser — чистое Java‑решение и работает на любой платформе, поддерживающей Java 8+.

Заключение

Теперь у вас есть полный, готовый к продакшн метод для how to preview Excel книг и convert xlsx to png с использованием GroupDocs.Parser. Настройте DPI, папку вывода или формат изображения в соответствии с потребностями проекта и интегрируйте этот фрагмент в более крупные рабочие процессы управления документами.

Готовы к следующему шагу? Изучите официальную documentation для расширенных параметров рендеринга, файлов с паролем и техник пакетной обработки.


Последнее обновление: 2026-02-06
Тестировано с: GroupDocs.Parser 23.11 (latest at time of writing)
Автор: GroupDocs