Бесплатный ультрабыстрый Ruby Writer и Reader для Excel XLSX
Молниеносно быстрая открытая Ruby‑библиотека позволяет разработчикам создавать, читать и манипулировать файлами Excel XLSX. Применяйте форматирование ячеек, строк и столбцов, объединение и разбиение.
Что такое Fast_Excel?
Замедляет ли ваше Ruby‑приложение неэффективное создание Excel‑файлов? Представляем Fast_Excel, ультрабыстрый Excel‑писатель, разработанный для быстрого создания файлов Excel без перегрузки памяти. Этот мощный открытый Ruby‑API для электронных таблиц выступает как привязка Ruby FFI к оптимизированной C‑библиотеке libxlsxwriter, обеспечивая скорость C при чистом Ruby‑интерфейсе. Как высокопроизводительная бесплатная Ruby‑библиотека для Excel, она позволяет без проблем создавать файлы Excel XLSX и управлять данными таблиц XLSX, сохраняя минимальный расход памяти — идеально для генерации больших отчётов «на лету».
Fast_Excel — это функциональное решение, которое даёт разработчикам возможность с лёгкостью создавать документы Excel XLSX и генерировать CSV‑файлы. Помимо скорости, оно предоставляет широкие возможности управления форматированием ячеек, строк и столбцов, добавлением формул и построением многолистовых книг. Его эффективная архитектура обеспечивает выполнение операций значительно быстрее, чем чисто Ruby‑решения, экономя ресурсы сервера. Нужны ли вам ODS‑выводы или работа со сложными возможностями Excel, Fast_Excel сочетает в себе сырую производительность и интуитивный, ориентированный на Ruby API для всех ваших потребностей в экспорте таблиц.
Начало работы с Fast_Excel
Рекомендуемый способ установки библиотеки Fast_Excel — использование RubyGems. Пожалуйста, воспользуйтесь следующей командой для беспроблемной установки.
Установить rubyX через RubyGems
$ gem install fast_excel Создание простой таблицы через Ruby API
Открытая библиотека Fast_Excel упрощает программистам создание новых файлов Excel XLSX очень эффективно и с небольшим потреблением памяти внутри их собственных Ruby‑приложений. Основной сценарий использования — генерация простой таблицы из массива данных. Она поддерживает добавление новых листов, переименование существующих листов, вставку текста и изображений и т.д. Ниже приведён простой пример, показывающий, как создать простую таблицу XLSX в Ruby‑приложениях.
Как создать простую таблицу с помощью Ruby‑библиотеки?
require 'fast_excel'
# Create a new workbook
workbook = FastExcel.open("constant_memory.xlsx", constant_memory: true)
# Add a worksheet
worksheet = workbook.add_worksheet("User Report")
# Add data rows. The write_row method accepts an array of values.
worksheet.write_row(0, ["ID", "Name", "Email"]) # Header row (row index 0)
users = User.limit(10000)
users.each_with_index do |user, index|
# Write each row, starting from row 1
worksheet.write_row(index + 1, [user.id, user.name, user.email])
end
# Don't forget to close the workbook to save the file!
workbook.close
Продвинутое форматирование ячеек через Ruby
Библиотека Fast_Excel предоставляет полную поддержку богатого набора параметров форматирования, позволяя вашим таблицам выглядеть профессионально и читабельно. Вы можете задавать размер шрифта, семейство шрифтов, цвет (в том числе RGB), стили, такие как полужирный/курсив, варианты подчёркивания, зачеркивание, перенос текста, вращение, отступ, границы (тонкие, двойные и т.п.), выравнивание (по горизонтали, вертикали), числовые форматы и т.д. Ниже приведён очень полезный пример, демонстрирующий, как разработчики могут применять различные типы форматирования к ячейкам, строкам и столбцам листов Excel в Ruby‑приложениях.
Как применить расширенное форматирование к листам Excel с помощью Ruby API?
require 'fast_excel'
workbook = Fast_Excel.open("formatted_report.xlsx")
# Create a bold format
bold = workbook.bold_format
# Create a custom number format
currency_format = workbook.number_format("$#,##0.00")
worksheet = workbook.add_worksheet("Sales Report")
# Set column widths and formats
worksheet.set_column(0, 0, 20)
worksheet.set_column(1, 1, 15, currency_format)
# Write a header row with bold formatting
worksheet.append_row(["Product", "Revenue"], bold)
# Write data rows
worksheet.append_row(["Product A", 15000])
worksheet.append_row(["Product B", 25000])
workbook.close
Манипулирование столбцами и строками через Ruby API
Библиотека Fast_Excel позволяет разработчикам работать со строками и столбцами электронных таблиц Excel внутри Ruby‑приложений. Она предоставляет полный контроль над размерами ваших столбцов и строк. Вы можете задавать конкретные ширины и высоты, а Fast_Excel даже поддерживает автоматическую ширину для строковых значений. Следующий пример демонстрирует, как работать со строками и столбцами таблицы Excel с помощью команд Ruby.
Как задать ширину и высоту строки или столбца таблицы с помощью Ruby?
require 'fast_excel'
workbook = Fast_Excel.open("column_width.xlsx")
worksheet = workbook.add_worksheet
# Set the width of the first column to 30
worksheet.set_column(0, 0, 30)
# Set the height of the first row to 40
worksheet.set_row(0, 40)
worksheet.append_row(["This is a long string that needs more space"])
workbook.close
Повышенная скорость и производительность
Открытая библиотека Fast_Excel обладает очень высокой скоростью и значительно опережает чисто Ruby‑гемы, особенно при работе с большими наборами данных. Поскольку FastExcel использует libxlsxwriter (C‑библиотека), операции проходят гораздо быстрее, чем в чисто Ruby‑библиотеках. Бенчмарки показывают, что она превосходит такие решения, как Axlsx, в несколько раз. Запись 1 000 строк — Fast_Excel примерно в 3–4 раза быстрее, чем Axlsx; при больших объёмах данных (20 000 строк) она всё ещё заметно быстрее.