Aspose.Cells for Java Против конкурентов с открытым исходным кодом
Обзор
Большинство бизнес-сценариев требуют сложных отчетов, богатых содержанием и ориентированных на потребности конкретных решений или задач, которыми общее управление будет пользоваться. Также требуется некое средство сбора данных, анализа и взаимодействия с системами баз данных.
Обычным решением является использование электронных таблиц для сбора данных, анализа и в качестве инструмента презентации. Решение должно иметь возможность создавать полностью отформатированные файлы Microsoft Excel, которые могут анализировать бизнес-сценарий и, идеально, расширить эти базовые функции для изучения процессов захвата и экспорта данных в другие широко используемые офисные приложения. Эти разработки могут включать использование встроенных функций и возможностей Microsoft Excel.
Сегодня на рынке представлено множество различных компонентов электронных таблиц, которые обещают богатые функциональные возможности для управления электронными таблицами. Здесь мы проводим анализ функций Aspose.Cells for Java по сравнению с конкурентами с открытым исходным кодом JExcelAPI и POI HSSF. Позвольте мне представить краткое введение в три первых.
Aspose.Cells for Java
Aspose.Cells for Java - гибкий компонент, который позволяет Java-приложениям создавать и управлять электронными таблицами Excel без установленного Microsoft Excel на системе (клиент или сервер). В отличие от аналогичных продуктов других производителей, Aspose.Cells for Java поддерживает не только генерацию электронных таблиц и основные возможности форматирования файлов, но и ряд продвинутых функций. Эти продвинутые функции упрощают разработчикам манипулирование содержимым электронных таблиц, форматирование ячеек и опции защиты файлов.
Aspose.Cells for Java также может импортировать данные в электронные таблицы из различных источников данных, добавлять обычные и сложные математические, даты/время, финансовые, текстовые формулы и функции, импортировать изображения (поддерживаются все основные форматы, включая BMP, GIF, JPG, PNG, WMF, EMF и другие), создавать комментарии, создавать объекты рисунка и элементы управления, а также выполнять целый ряд других задач.
Aspose.Cells for Java также поддерживает надстройки, VBA и макросы.
Открытие и сохранение
Помимо поддержки общих функций, таких как создание или чтение файлов Excel, Aspose.Cells for Java также предлагает множество ценных функций, таких как сохранение и открытие файлов Excel (Excel 97 - Excel 2007) в потоки, импорт и экспорт данных из ResultSet и массива,
Aspose.Cells может импортировать диаграммы, именованные диапазоны, верхние и нижние колонтитулы со всеми атрибутами, которые предоставляет Microsoft Excel, вставлять гиперссылки и изображения, а также импортировать формулы из дизайнерской электронной таблицы.
Форматирование
Форматирование данных на листе Excel важно, потому что оно может изменить смысл ваших данных. Если вы планируете распечатать лист, отправить его клиентам по электронной почте или показать своему начальнику, вам нужно подумать о том, отформатирован ли он удобным для просмотра образом. Внимательное использование цвета, заливки, границ, шрифтов, форматирования чисел, выравнивания, отступов и ориентации может сделать разницу между беспорядочным набором данных и листом, с которым легко работать и понимать.
Aspose.Cells for Java обеспечивает гибкость в отрисовке границ вокруг ячеек и диапазонов ячеек. Кроме того, API может применять настройки шрифта (семейство и тип, стиль, размер, цвет и выравнивание) и заливать ячейки узорами фона. API достаточно эффективен, чтобы вы могли форматировать полную строку или столбец, устанавливать выравнивание, переносить и поворачивать текст в ячейках.
Aspose.Cells for Java поддерживает все типы форматов чисел, включая общий формат, числа в десятичных обозначениях, валютные символы, проценты, научный формат, значения даты/времени и даже настраиваемые числовые форматы.
Aspose.Cells позволяет разработчикам автоматически подгонять строки и столбцы в одном действии, а также настраивать все типы параметров страницы в удобном API: верхние, левые, нижние, правые, поля для заголовков и подвалов, ориентация - книжная или альбомная - масштабирование, размер бумаги, область печати, повторяющиеся строки и столбцы и многое другое.
Уникальные особенности
Также существует ряд уникальных особенностей, которые разработчики найдут только в Aspose.Cells for Java, например поддержка широкого спектра форматов, включая XLS, XLT, XLSX, CSV, SpreadsheetML, разделенные табуляцией, TXT, XML и HTML.
API также позволяет разработчикам добавлять копию существующего листа (с полным содержанием, изображениями и диаграммами) в файл, устанавливать градиентный фон для диаграмм через API, создавать комментарии, устанавливать локализацию и региональные настройки, автофильтры и разрывы страниц, устанавливать сложные формулы, условное форматирование, все виды параметров защиты, введенных в Microsoft Excel XP или выше, и управлять именованными диапазонами.
Кроме того, Aspose.Cells добавляет собственное API диаграмм и эффективный движок вычисления формул.
Попробуйте Aspose.Cells for Java
Aspose.Cells for Java имеет огромный список функций. Чтобы узнать больше о функциях и для руководства программиста, пожалуйста, проверьте документацию и онлайн-демонстрации.
Пожалуйста, попробуйте компонент, чтобы увидеть разницу между ним и его конкурентами. Оценочная версия абсолютно бесплатна без ограничения по времени. Скачайте оценочную версию бесплатно.
Другие API
JExcelAPI
JExcelAPI - это Java API, используемый для чтения, записи и изменения электронных таблиц Excel. Это открытое Java API, которое позволяет разработчикам Java читать электронные таблицы Excel и генерировать их динамически. Кроме того, оно содержит механизм, который позволяет Java-приложениям читать электронную таблицу, изменять ячейки и записывать новую электронную таблицу.
На момент написания у него ограниченный набор функций. Он поддерживает: чтение и запись файла Microsoft Excel (Excel97-2003) в формате XLS. Он имеет ограниченную поддержку расчета формул. Он может управлять шрифтами, поддерживает форматирование чисел и дат, изменение существующих листов, локализацию, сохранение диаграмм (но не позволяет разработчикам создавать или управлять диаграммами), вставку изображений и так далее.
Ограниченная поддержка диаграмм
У JExcelApi ограниченная поддержка диаграмм: он не поддерживает создание и управление диаграммами. При копировании электронной таблицы с диаграммой, диаграмма записывается в созданную электронную таблицу (пока лист с диаграммой содержит также другие данные помимо диаграммы). Вся информация об изображении сохраняется при копировании электронных файлов, однако при добавлении изображения в электронную таблицу поддерживаются только изображения в формате PNG.
Невозможность копирования листов
Не существует API для копирования листов внутри или между книгами напрямую. Эту задачу можно выполнить косвенным образом, но требует некоторой работы. Например, используя циклы, копируйте ячейку за ячейкой с помощью метода WritableCell.copyTo(), который сделает глубокую копию. Однако формат будет скопирован только поверхностно, поэтому вам нужно получить формат ячейки и использовать копирующий конструктор, а затем вызвать WritableCell.setCellFormat() для только что скопированной ячейки. Это довольно крупная работа.
Отсутствие оптимизации
Еще одним ограничением является то, что JExcelAPI не выполняет оптимизацию для уменьшения размера файла, поэтому не удивляйтесь, если полученный компонентом файл будет иметь огромный размер в мегабайтах.
У JExcelAPI нет API для автоматического подгонки строк или столбцов. Вам придется написать код, который сканирует ячейки в каждом столбце, вычисляет максимальную длину, а затем делать вызовы к WritableSheet.setColumnView() и WritableSheet.setRowView() соответственно.
Отсутствующие функции
Есть еще несколько препятствий: API не поддерживает сводные таблицы и выпадающие списки. Он имеет ограниченные варианты валидации для установки в ячейки. Настройки страницы и параметры печати не полностью поддерживаются, например повторяющиеся строки и столбцы, и не все виды параметров защиты (включая листы, связанные с защитой пароля) поддерживаются. Он также не поддерживает сортировку данных, автофильтрацию данных, условное форматирование, рисование объектов, элементы управления и многие другие ценные функции.
POI-HSSF
HSSF - это компонент POI, который читает и записывает электронные таблицы Excel. Он имеет расширенный набор функций по сравнению с JExcelAPI, включая чтение и запись файлов нативного формата Microsoft Excel (Excel97-2003 - формат файла XLSX OOXML пока не поддерживается), форматирование ячеек (форматы чисел, шрифты, цвета, границы, выравнивание и т. д.), объединение ячеек, параметры настройки страницы, импорт изображений, формы, именованные диапазоны, создание комментариев, заголовков и нижних колонтитулов, гиперссылок, автоматической подгонки строк и столбцов и т. д.
Ограниченная поддержка диаграмм
Известны несколько ограничений для API POI-HSSF. Например, в настоящее время нельзя создавать диаграммы. Однако вы можете создать диаграмму в Excel, изменить значения данных диаграммы с помощью HSSF и записать новую электронную таблицу. Еще одно ограничение связано с поддержкой сводных таблиц, генерация сводных таблиц невозможна.
Вычисление формул
Хотя org.apache.poi.hssf.usermodel POI поддерживает формулы, но у него отсутствует мощный движок вычисления формул. Он поддерживает формулы, содержащие ссылки на ячейки строковые, целочисленные и числовые литералы, относительные или абсолютные ссылки, арифметические и логические операторы, но не поддерживает массивные формулы, унарные операторы и 3D-ссылки.
Отсутствующие функции
HSSF API также не поддерживает сводные таблицы. У него ограниченные варианты валидации данных для установки в ячейки. Он также не поддерживает функции, такие как сортировка данных и автофильтрация данных.
Сравнение функций
Следующая таблица пытается предоставить обзор функций, как Aspose.Cells for Java соотносится с компонентами с открытым исходным кодом (упомянутыми выше), хотя она и не претендует на то, чтобы охватить все функции, предоставленные участвующими продуктами. Это всего лишь обзор, созданный на определенный момент времени, и вполне возможно, что отсутствующие функции могут быть поддержаны в момент, когда вы будете читать документ.
Функция | JExcelAPI | HSSF POI | Aspose.Cells for Java |
---|---|---|---|
Форматы файлов | |||
Чтение и запись файловых форматов (XLS, XLT, XLSX, CSV, SpreadsheetML, разделенные табуляции, TXT, XML и HTML) | Частично поддерживается | Частично поддерживается | Поддерживается |
Открытие файла и сохранение в поток | Поддерживается | ||
Конвертирование файла Excel в документ PDF | Поддерживается | ||
Файлы с защитой пароля | Поддерживается | Поддерживается | |
Манипулирование содержимым электронных таблиц | |||
Изменение свойств документа файлов Excel | Поддерживается | ||
Экспорт данных листа в массив | Поддерживается | ||
Импорт данных из набора данных ResultSet | Поддерживается | ||
Импорт данных из массива, коллекции | Поддерживается | ||
Добавление копии существующего листа (всех содержимого, включая изображения и диаграммы) | Частично поддерживается | Частично поддерживается | Поддерживается |
Импорт изображений | Подддерживается | ||
Импорт диаграмм | Подддерживается | ||
Установка градиентного фона для диаграмм с помощью API | Поддерживается | ||
Защита листа, включая содержимое, объекты и сценарии | Частично поддерживается | Поддерживается | Поддерживается |
Создание автофильтров с использованием API | Поддерживается | ||
Настройки страницы (верхние, левые, нижние, правые поля, верхний и нижний колонтитулы, ориентация - книжная или альбомная, масштабирование, размер бумаги, область печати, повторяющиеся строки и столбцы) | Частично поддерживается | Поддерживается | Поддерживается |
Горизонтальные и вертикальные разрывы страниц через API | Подддерживается | Подддерживается | Подддерживается |
Копирование и перемещение листов внутри и между книгами | Подддерживается | Подддерживается | |
Вставка и удаление строк и столбцов | Подддерживается | Подддерживается | |
Автоматическое подгонка строк и столбцов | Подддерживается | Подддерживается | |
Копирование строк и столбцов | Подддерживается | ||
Сортировка данных | Подддерживается | ||
Следователи и предшественники | Подддерживается | ||
Автофильтрация | Подддерживается | ||
Проверка данных (все типы) | Частично поддерживается | Частично поддерживается | Подддерживается |
Импорт формул из дизайнерской электронной таблицы | Частично поддерживается | Частично поддерживается | Подддерживается |
Установите сложные формулы через API | Поддерживается | ||
Условное форматирование | Поддерживается | Поддерживается | |
Активация листов и установка активной ячейки в рабочей книге. | Поддерживается | Поддерживается | Поддерживается |
Расширенные функции | |||
Умные маркеры | Поддерживается | ||
Создание стандартных диаграмм (столбчатые, гистограммы, линейные, круговые, точечные, площадные, кольцевые, радарные, трехмерные поверхности, пузырьковые, фондовые, цилиндрические, конические, пирамидальные и т. д.) | Поддерживается | ||
Пользовательский интерфейс API | Поддерживается | ||
Настройки свойств документа | Поддерживается | ||
Расширенные параметры защиты Excel XP | Поддерживается | ||
Надстройки, VBA, макросы | Поддерживается | ||
Манипулирование именованными диапазонами | Поддерживается | Поддерживается | Поддерживается |
Сводные таблицы | Поддерживается | ||
Создание общих объектов рисования, фигур и элементов управления | Поддерживается | Поддерживается | |
Вставка элементов управления в диаграммы | Поддерживается | ||
Движок расчета формул | Поддерживается | ||
API поиска | Поддерживается | Поддерживается | Поддерживается |