Бесплатный ультрабыстрый 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 для всех ваших потребностей в экспорте таблиц.

Previous Next

Начало работы с 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 строк) она всё ещё заметно быстрее.

 Русский