Бесплатная библиотека Ruby для удаленного разбора больших файлов Excel XLSX

Мощная открытая библиотека Ruby для разбора больших файлов Excel XLSX и XLSM удаленно. Поддерживает разбор удаленных файлов и изображений, сопоставление заголовков и т.д.

Что такое библиотека Creek?

В мире обработки данных работа с большими файлами Excel может быть сложной задачей, часто приводящей к узким местам в производительности и высокому потреблению памяти. Представляем Creek — мощную open‑source Ruby‑библиотеку, разработанную для разбора больших файлов Excel с впечатляющей эффективностью. Это эффективный инструмент для разбора больших файлов Excel. Он описывает ключевые возможности, такие как потоковый разбор, поддержка различных типов файлов и гибкие варианты использования как в автономных скриптах, так и в приложениях Rails. Библиотека предоставляет полную поддержку базовых операций, разбора изображений и обработки удалённых файлов, что делает её ценным ресурсом для разработчиков, желающих оптимизировать свои рабочие процессы обработки данных.

Creek — надёжная, эффективная и сфокусированная open‑source библиотека для разбора .xlsx/.xlsm файлов Excel в Ruby. Это Ruby‑gem, который предоставляет быстрый и простой способ чтения и разбора больших файлов Excel (XLSX и XLSM). Он использует потоковый разбор, что означает чтение файла по частям вместо загрузки всего файла в память. Такой подход делает Creek невероятно экономным по памяти и идеальным для приложений, работающих с огромными наборами данных. Независимо от того, работаете ли вы над автономным Ruby‑скриптом или приложением Rails, Creek предлагает бесшовный опыт интеграции. Если ваш проект включает крупные таблицы, изображения, метаданные или загрузки файлов в Rails, Creek предоставляет множество необходимой функциональности с минимальными накладными расходами.

Previous Next

Начало работы с Creek

Рекомендуемый способ установки библиотеки Creek — через RubyGems. Пожалуйста, используйте следующую команду для плавной установки.

Установить Creek через RubyGems

$ gem install Creek  

Разбор больших файлов Excel с Ruby

The cornerstone of open source Creek library is its stream parsing capability. This feature allows you to process large Excel files without worrying about memory overloads. By reading the file in chunks, Creek ensures that your application remains responsive and stable, even when handling files with hundreds of thousands of rows. The most common use case is to open a file and read data from its worksheets. Here is a simple example that demonstrates, how software developers can parse an Excel file via Ruby library.

Как разобрать большие файлы Excel XLSX через Ruby-библиотеку?

require 'creek'

# Open the Excel file
creek = Creek::Book.new 'path/to/your/sample.xlsx'

# Get the first sheet
sheet = creek.sheets[0]

# Loop through rows with cell coordinates
sheet.rows.each do |row|
  puts row
  # => {"A1"=>"Content 1", "B1"=>nil, "C1"=>"Content 2"}
end

# Loop through rows without cell coordinates
sheet.simple_rows.each do |row|
  puts row
  # => {"A"=>"Content 1", "B"=>nil, "C"=>"Content 2"}
End

Разбор и извлечение изображений с помощью Ruby

While not enabled by default to conserve memory, the Creek library can parse images from your Excel files. By using the with_images method, you can preload and extract images from cells. The images are returned as an array of Pathname objects, making them easy to work with. Here is a simple example that demonstrates, how software developers can parse and extract I mages from an Excel spreadsheet via Ruby Library.

Как разобрать и извлечь изображения из листа Excel через Ruby-библиотеку?

require 'creek'

book = Creek::Book.new 'presentation.xlsx'
sheet = book.sheets.first

sheet.with_images.rows.each do |row|
  row.each do |coord, value|
    if value.is_a?(Array)
      # this cell has images
      puts "Images at #{coord}: #{value.inspect}"
    else
      puts "#{coord}: #{value}"
    end
  end
end

# Images at a specific cell
images = sheet.images_at('B2')
if images
  images.each do |path|
    puts "Found image file: #{path}"
  end
else
  puts "No image at B2"
end

Разбор удаленных файлов с помощью Ruby

Need to parse an Excel file from a URL? The Creek library has you covered. By setting the remote: true option, you can parse files directly from a remote server, eliminating the need to download them first. You can parse files from URLs or paths even if they don’t have .xlsx or .xlsm extensions. The extension check can be skipped. The argument check_file_extension can be provided to bypass extension enforcement. Here is a simple example for parsing Excel files remotely via Ruby library.

Как разобрать файл Excel XLSX удалённо через Ruby-библиотеку?

remote_url = 'http://example.com/sample.xlsx'
creek = Creek::Book.new remote_url, remote: true
# ... process the file

Разбор файлов XLSX и XLSM с Ruby

The open source ruby library Creek supports both the standard XLSX and the macro-enabled XLSM file formats, providing flexibility for various use cases. This ensures that you can handle a wide range of Excel files without needing multiple libraries.

 Русский