Class: SwarmSDK::V3::Tools::DocumentConverters::XlsxConverter

Inherits:
Base
  • Object
show all
Defined in:
lib/swarm_sdk/v3/tools/document_converters/xlsx_converter.rb

Overview

XLSX/Spreadsheet converter

Converts spreadsheet files (XLSX, XLS, ODS) to CSV format. Requires the roo gem (and roo-xls for legacy XLS support).

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

available?

Class Method Details

.extensionsArray<String>

Returns supported extensions.

Returns:

  • (Array<String>)

    supported extensions



24
25
26
# File 'lib/swarm_sdk/v3/tools/document_converters/xlsx_converter.rb', line 24

def extensions
  [".xlsx", ".xls", ".ods"]
end

.format_nameString

Returns format name.

Returns:

  • (String)

    format name



19
20
21
# File 'lib/swarm_sdk/v3/tools/document_converters/xlsx_converter.rb', line 19

def format_name
  "XLSX/Spreadsheet"
end

.gem_nameString

Returns gem name.

Returns:

  • (String)

    gem name



14
15
16
# File 'lib/swarm_sdk/v3/tools/document_converters/xlsx_converter.rb', line 14

def gem_name
  "roo"
end

Instance Method Details

#convert(file_path) ⇒ String

Convert spreadsheet to CSV text format

Parameters:

  • file_path (String)

    path to spreadsheet file

Returns:

  • (String)

    CSV formatted text



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/swarm_sdk/v3/tools/document_converters/xlsx_converter.rb', line 33

def convert(file_path)
  return unsupported_format_message unless self.class.available?
  return unsupported_xls_message if file_path.end_with?(".xls") && !xls_available?

  require "roo"
  require "csv"

  spreadsheet = Roo::Spreadsheet.open(file_path)
  build_csv_output(spreadsheet, file_path)
rescue StandardError => e
  error("Spreadsheet conversion failed: #{e.message}")
end