Сравнение библиотек создания документов формата docx для языка программирования Golang

Автор: Брянцев А.А., Завтур П.С.

Журнал: Международный журнал гуманитарных и естественных наук @intjournal

Рубрика: Технические науки

Статья в выпуске: 9-1 (96), 2024 года.

Бесплатный доступ

Существует множество библиотек для разных языков программирования позволяющих создавать и модифицировать файлы формата .docx. Отличие в скорости работы популярных библиотек для языка программирования Golang не было хорошо изучено. Мы рассмотрели три востребованные библиотеки: ooxml, docxlib, unioffice, чтобы лучше понять, какая из них лучше и определить преимущества каждой из библиотек. Возможны разные сценарии применения данных библиотек. Для лучшего выбора необходимо знать, насколько библиотеки различаются в затратах на их использование. Был проведен сравнительный анализ по критерию времени генерации документов и их веса.

Еще

Библиотека

Короткий адрес: https://sciup.org/170207095

IDR: 170207095   |   DOI: 10.24412/2500-1000-2024-9-1-124-126

Текст научной статьи Сравнение библиотек создания документов формата docx для языка программирования Golang

В мире программирования современных приложений эффективная работа с документами является неотъемлемой частью функциональности. Формат docx, пользующийся широкой популярностью в рабочих и образовательных средах, требует надежных инструментов для создания, редактирования и форматирования. Язык программирования Golang (или Go) привлекает внимание разработчиков своей производительностью и удобством, стимулируя поиск оптимальных библиотек для работы с данным форматом.

Данное исследование представляет собой сравнительный анализ библиотек, предназначенных для создания docx-документов в среде Golang. Акцент делается на анализе основных функциональных возможностей, производительности, удобства в использовании, гибкости кастомизации и поддержки актуальных стандартов формата docx.

Цель настоящего исследования – предоставить разработчикам убедительное сравнение различных библиотек, которые могут быть использованы для генерации docx-файлов в Golang, обеспечивая информацию, необходимую для выбора наиболее подходящего инструмента в зависимости от конкретных требований и целей проекта.

docx, ooxml, docxlib, unioffice.

Методы и организация исследования

Для проведения данного тестирования использовалась небольшая программа собственного написания на языке Golang, фиксирующая начало работы и окончание исполнение команд, относящихся к библиотекам ooxml, docxlib, unioffice.

Критериями сравнения были: скорость создания документов, простота использования библиотек. Данные критерии были выделены, как наиболее важные для сравнения. Скорость создания документов является важным критерием при выборе библиотеки для работы с docx в Golang. Однако, следует помнить, что скорость не должна быть единственным критерием, и ее следует сбалансировать с другими параметрами, например, простота использования библиотек. Простота использования библиотеки является важным критерием при выборе инструмента для работы с .docx в Golang. Однако, важно учитывать, что простота использования не должна жертвовать функциональностью или гибкостью библиотеки, поэтому баланс между удобством и предоставляемыми возможностями также играет важную роль при принятии решения о выборе конкретной библиотеки.

Каждая библиотека была протестирована в двух сценариях использования: файлы с простым текстом, файлы с форматированием, файлы с использованием графических материалов.

Тест «файлы с простым текстом» поможет оценить производительность и надежность библиотеки при многократном создании простых документов, что может быть важным фактором при выборе инструмента для создания и обработки документов в формате .docx в Golang.

Тест «файлы с форматированием» поможет разработчикам оценить возможно- сти библиотеки для работы с форматированием текста в .docx-документах. Использование различных параметров форматирования позволит убедиться в правильности применения стилей и атрибутов текста, что является важным аспектом при выборе библиотеки для работы с документами в Golang.

Результаты и их обсуждение.

По результатам тестирования были получены соответствующие результаты, приведенные ниже в таблицах 1-4.

Таблица 1. Сводная таблица затраченного времени для различного количества документов

Кол-во файлов

ooxml, сек

docxlib, сек

unioffice, сек

1

0,0021

0,0016

0,0021

10

0,0144

0,0160

0,0165

50

0,0642

0,0813

0,0700

100

0,1265

0,1646

0,1206

500

0,6849

0,9669

0,7027

1000

1,3110

1,7737

1,3896

Таблица 2. Сводная таблица затраченного времени на создание одного большого доку- мента

t, сек

Библиотека

0,0853351

ooxml

0,0624579

docxlib

0,0699724

unioffice

Таблица 3. Сводная таблица затраченного времени на создание одного простого документа

t, сек

Библиотека

0,0020691

ooxml

0,0010290

docxlib

0,0015658

unioffice

Таблица 4. Сводная таблица веса одного документа

Простой, Кб

Большой, Кб

Библиотека

4,95

1375

ooxml

8,34

1380

docxlib

4,93

1375

unioffice

Исходя из полученных результатов библиотека docxlib показала лучшие результаты при создании одного документа, однако при множественном создании документов результаты являются худшими относительно других библиотек. В сравнение весов библиотека docxlib показала себя значительно хуже остальных, разница результатов остальных библиотек составляет погрешность.

По интерфейсу используемые библиотеки являются очень похожими и в большинстве случаев отличаются в наименовании функций, но не их структура.

Вывод

По результатам всех тестов и их анализа мы пришли к выводу, что самой выгодной библиотекой является unioffice. Данная библиотека хоть и проигрывает docxlib в скорости генерации одного документа, однако вес получаемого файла значительно меньше. Все рассмотренные библиотеки требования к скорости создания или весу простые в использовании и для разных си- файла.

туаций можно подобрать подходящую под

Список литературы Сравнение библиотек создания документов формата docx для языка программирования Golang

  • Донован, Алан А.А., Керниган, Брайан. Язык программирования Go.: Пер. с англ. - М.: ООО "И.Д. Вильямс", 2016. - 432 с.
  • Индрасири Касун, Курупу Данеш, gRPC: запуск и эксплуатация облачных приложений. Go и Java для Docker и Kubernetes. - СПб.: Питер, 2021. - 224 с.
  • Клеппман М., Высоконагруженные приложения. Программирование, масштабирование, поддержка. - СПб.: Питер, 2019. - 640 с.: - (Серия "Бестселлеры O'Reilly").
  • Петров Алекс, Распределенные данные. Алгоритмы работы современных систем хранения информации. - СПб.: Питер, 2021. - (Серия "Бестселлеры O'Reilly").
  • Адам Фриман, Pro Go: The Complete Guide to Programming Reliable and Efficient Software Using Golang 1st ed. Edition,. ISBN: 978-1-4842-7354-8
Статья научная