#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)!