Сравнение функциональности и производительности Aspose.Cells для Go через C с Excelize, Tealeg/xlsx и Go OLE.

Следующее представляет собой всестороннее сравнение Aspose.Cells для Go (через C) с другими основными библиотеками обработки Excel на языке Go (Excelize, tealeg/xlsx, go-ole) с точки зрения функциональности, производительности и сценариев использования.

Различия в базовом позиционировании и структуре

Название библиотеки Тип Внутреннее реализованиe Зависимость от CGO Кроссплатформенная развертка
Aspose.Cells для Go Коммерческая библиотека (MIT/Платная) Собственный движок, обертка на Go через CGO ✅ Да Поддержка Windows, Linux
Excelize Open Source библиотека (MIT) Чистая реализация на Go ❌ Нет Поддержка Windows, Linux, MacOS
tealeg/xlsx Open Source библиотека (BSD) Чистая реализация на Go ❌ Нет Поддержка Windows, Linux, MacOS
go-ole Open Source библиотека (BSD) Интерфейс Windows OLE/COM на Go ✅ Да (только Windows) Только Windows

Основные различия

  • Aspose.Cells for Go via C++ — промышленного класса коммерческая библиотека с наиболее полно функциональностью, однако требует платной лицензии.
  • Excelize в настоящее время является самой активной и открытой библиотекой Go, полностью на Go.
  • Tealeg/xlsx — ранняя открытая библиотека с более базовыми функциями и медленным обслуживанием.
  • Go-ole — это схема автоматизации COM только для Windows, которая зависит от установки Excel и не рекомендуется для серверных сред.

Сравнение функций

Сравнение поддерживаемых форматов файлов

Формат таблицы Aspose.Cells for Go via C++ Excelize Tealeg/xlsx Go-OLE (Excel-приложение)
Xlsx ✅ Да ✅ Да ✅ Да ✅ Зависит от Excel
Xlsb ✅ Да ❌ Нет ❌ Нет ✅ Зависит от Excel
Xls ✅ Да ❌ Нет ❌ Нет ✅ Зависит от Excel
Xlsm ✅ Да ✅ Да ✅ Да ✅ Зависит от Excel
Xltm ✅ Да ✅ Да ✅ Да ✅ Зависит от Excel
Xltx ✅ Да ✅ Да ✅ Да ✅ Зависит от Excel
Csv ✅ Да ❌ Нет ❌ Нет ✅ Зависит от Excel
Ods ✅ Да ❌ Нет ❌ Нет ✅ Зависит от Excel
Html ✅ Да ❌ Нет ❌ Нет ❌ Нет
Numbers ✅ Да ❌ Нет ❌ Нет ❌ Нет
Json ✅ Да ❌ Нет ❌ Нет ❌ Нет
Xml ✅ Да ❌ Нет ❌ Нет ❌ Нет
SpreadsheetML ✅ Да ❌ Нет ❌ Нет ❌ Нет

Поддерживаемые функции таблиц

Возможности библиотеки Aspose.Cells for Go via C++ Excelize Tealeg/xlsx Go-OLE (Excel-приложение)
Чтение/Запись (поддержка формата файла) ✅ Да ✅ Да ✅ Да ✅ Да
Ячейки/Строки/Колонки/Листы ✅ Да ✅ Да ✅ Да ✅ Да
Стиль ✅ Да ✅ Да ✅ Да ✅ Да
Расчет формул ✅ Да ✅ Да (частично) ❌ Нет ✅ Да (вычислено в Excel)
Диаграмма/Картинка ✅ Да ✅ Да (частично) ❌ Нет ✅ Да
Свободная таблица (Пивоттаблица) ✅ Да ✅ Да ❌ Нет ✅ Да
Условное форматирование ✅ Да ✅ Да ❌ Нет ✅ Да
Проверка данных ✅ Да ✅ Да ❌ Нет ✅ Да
Шифрование/защита паролем ✅ Да ✅ Да ❌ Нет ✅ Да
Проверка данных ✅ Да ✅ Да ❌ Нет ✅ Да
VBA макрос ✅ Да, чтение ❌ Нет ❌ Нет ✅ Да
Проверка данных ✅ Да ✅ Да ❌ Нет ✅ Да

Сравнение производительности

  • Тестовая среда: Процессор: 12-е поколение Intel(R) Core(TM) i7-12700 (2.10 ГГц) Установленная оперативная память: 64.0 ГБ (доступно 63.7 ГБ) ОС: Microsoft Windows 11 Pro Версия ОС: 10.0.26100 Архитектура ОС: 64-битная Версия Go: go version go1.24.5 windows/amd64 Aspose.Cells for Go via C++: 25.9.0 Excelize: 1.4.1

  • Тестовый сценарий: предполагается большой файл, 10 листов, 100 000 строк x 250 столбцов, включая форматирование

  • Результаты выполнения:

    • Время выполнения Excelize: 35 минут (Время начала: 2025-10-09T10:04:16+08:00, Время окончания: 2025-10-09T10:39:53+08:00), размер сгенерированного файла: 1.11 ГБ.
    • Aspose.Cells for Go via C++(модель 1) работает 27 минут (Время начала: 2025-10-09T10:57:55+08:00, Время окончания: 2025-10-09T11:16:24+08:00 ), размер сгенерированного файла: 936MB.
    • Aspose.Cells for Go via C++(модель 2) работает 16 минут (Время начала: 2025-10-09T12:01:26+08:00, Время окончания: 2025-10-09T12:17:17+08:00 ), размер сгенерированного файла: 1.16ГБ.