как использовать rubyxl для доступа к первой строке

#ruby-on-rails #rubyxl

#ruby-on-rails #rubyxl

Вопрос:

 workbook = RubyXL::Parser.parse(params[:file].path)  
worksheet = workbook[0]
puts worksheet.sheet_data[0][0]
  

Но я получаю это в качестве вывода

 <RubyXL::Cell(0,0): "0", datatype="s", style_index=1>
  

Мой лист Excel имеет такую форму

     name    coupon
    gates   gates1234
    jobs    jobs1234
  

Я хочу получать доступ к строкам один за другим .. любая помощь будет оценена.

Я также сделал пример приложения для этого поста, если вы хотите его запустить ..

https://github.com/vamsipavanmahesh/example-excel-reader

Ответ №1:

рабочий лист.sheet_data[0]

предоставляет вам объект Ruby, представляющий первую строку.

рабочий лист.sheet_data[0][0]

предоставляет вам объект Ruby, представляющий первую ячейку в первой строке. Но чтобы получить фактическое содержимое этой ячейки, вам нужно

рабочий лист.sheet_data[0][0].значение

Рабочий лист организован как массив ячеек. Вам приходится иметь дело с ячейками по очереди в каждой строке, если вы обрабатываете строки последовательно.

Комментарии:

1. В sheet_data[0][0] первый [0] представляет строку или столбец?

2. Первый [0] предназначен для строки.

Ответ №2:

 worksheet.extract_data
  

предоставить вам целые строки листа

 worksheet.extract_data[0]
  

дайте вам первую строку

Ответ №3:

worksheet[0].cells.map(amp;:value) работа для меня

Я пытался worksheet.extract_data[0] , но extract_data больше не доступен в RubyXL (я использую v.3.3.3)!