СРАВНЕНИЕ БИБЛИОТЕК СОЗДАНИЯ ДОКУМЕНТОВ ФОРМАТА DOCX ДЛЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ GOLANG
А.А. Брянцев, магистрант П.С. Завтур, магистрант
Московский авиационный институт (Национальный исследовательский университет)
(Россия, г. Москва)
DOI:10.24412/2500-1000-2024-9-1-124-126
Аннотация. Существует множество библиотек для разных языков программирования позволяющих создавать и модифицировать файлы формата .docx. Отличие в скорости работы популярных библиотек для языка программирования Golang не было хорошо изучено. Мы рассмотрели три востребованные библиотеки: ooxml, docxlib, unioffice, чтобы лучше понять, какая из них лучше и определить преимущества каждой из библиотек. Возможны разные сценарии применения данных библиотек. Для лучшего выбора необходимо знать, насколько библиотеки различаются в затратах на их использование. Был проведен сравнительный анализ по критерию времени генерации документов и их веса. Ключевые слова: golang, go, библиотека, .docx, ooxml, docxlib, unюffice.
В мире программирования современных приложений эффективная работа с документами является неотъемлемой частью функциональности. Формат ёосх, пользующийся широкой популярностью в рабочих и образовательных средах, требует надежных инструментов для создания, редактирования и форматирования. Язык программирования Оо1ап§ (или Оо) привлекает внимание разработчиков своей производительностью и удобством, стимулируя поиск оптимальных библиотек для работы с данным форматом.
Данное исследование представляет собой сравнительный анализ библиотек, предназначенных для создания ёосх-документов в среде Оо1ап§. Акцент делается на анализе основных функциональных возможностей, производительности, удобства в использовании, гибкости ка-стомизации и поддержки актуальных стандартов формата ёосх.
Цель настоящего исследования -предоставить разработчикам убедительное сравнение различных библиотек, которые могут быть использованы для генерации ёосх-файлов в Golang, обеспечивая информацию, необходимую для выбора наиболее подходящего инструмента в зависимости от конкретных требований и целей проекта.
Методы и организация исследования
Для проведения данного тестирования использовалась небольшая программа собственного написания на языке Оо1ап§, фиксирующая начало работы и окончание исполнение команд, относящихся к библиотекам оохт1, ёосхНЬ, ишоШсе.
Критериями сравнения были: скорость создания документов, простота использования библиотек. Данные критерии были выделены, как наиболее важные для сравнения. Скорость создания документов является важным критерием при выборе библиотеки для работы с docx в Golang. Однако, следует помнить, что скорость не должна быть единственным критерием, и ее следует сбалансировать с другими параметрами, например, простота использования библиотек. Простота использования библиотеки является важным критерием при выборе инструмента для работы с ^осх в 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 в скорости генерации одного документа, однако вес получаемого файла значительно
меньше. Все рассмотренные библиотеки требования к скорости создания или весу простые в использовании и для разных си- файла. туаций можно подобрать подходящую под
Библиографический список
1. Донован, Алан А.А., Керниган, Брайан. Язык программирования Go.: Пер. с англ. -М.: ООО «И.Д. Вильямс», 2016. - 432 с.: ил. - Парал. тит. англ.
2. Индрасири Касун, Курупу Данеш, gRPC: запуск и эксплуатация облачных приложений. Go и Java для Docker и Kubernetes. - СПб.: Питер, 2021. - 224 с.: ил. - (Серия «Бестселлеры O'Reilly»).
3. Клеппман М., Высоконагруженные приложения. Программирование, масштабирование, поддержка. - СПб.: Питер, 2019. - 640 с.: - (Серия «Бестселлеры O'Reilly»).
4. Петров Алекс, Распределенные данные. Алгоритмы работы современных систем хранения информации. - СПб.: Питер, 2021. - (Серия «Бестселлеры O'Reilly»).
5. Адам Фриман, Pro Go: The Complete Guide to Programming Reliable and Efficient Software Using Golang 1st ed. Edition, ISBN 978-1-4842-7354-8.
COMPARISON OF LIBRARIES FOR CREATING DOCX DOCUMENTS FOR THE GOLANG PROGRAMMING LANGUAGE
A.A. Bryantsev, Graduate Student P.S. Zavtur, Graduate Student
Moscow Aviation Institute (National Research University) (Russia, Moscow)
Abstract. There are many libraries for different programming languages that allow you to create and modify .docx files. The difference in the speed of the popular libraries for the Golang programming language has not been well studied. We have reviewed three popular libraries in order to better understand which one is better and determine the advantages of each of the libraries. There are different scenarios for using these libraries. To make the best choice, you need to know how libraries differ in the cost of using them. A comparative analysis was carried out according to the criteria of document generation time and their weight. Keywords: golang, go, library, .docx, ooxml, docxlib, unioffice.