RubyXL возвращает шестнадцатеричный код ячейки при чтении ячейки

#ruby-on-rails #rubyxl

#ruby-on-rails #rubyxl

Вопрос:

Я пытаюсь прочитать книгу с помощью RubyXL, но всегда возвращаю мне шестнадцатеричный код, например: #<RubyXL::Cell:0x007f8b597c4390>

 workbook = RubyXL::Parser.parse("issues.xlsx")
        worksheet = workbook[0]
        worksheet.extract_data  # Produces a simple rectangular array that consists only of cell values (rather than the Cell objects)
        worksheet = workbook[0]
        #worksheet.sheet_data[0][0] # Returns cell A1 in the worksheet
        logger.info worksheet[17][4]
 

Необходимо ли возвращать текст строки в ячейке?

Ответ №1:

То, что вы делаете, — это получение фактической ячейки, а не ее значения. Чтобы получить значение ячейки, выполните следующие действия:

 logger.info worksheet[17][4].value
 

Ячейка может понадобиться для получения другой информации, такой как стиль ячейки:

 logger.info worksheet[17][4].font_name
logger.info worksheet[17][4].font_color
logger.info worksheet[17][4].font_size
logger.info worksheet[17][4].border_top
logger.info worksheet[17][4].is_bolded
logger.info worksheet[17][4].is_italicized
logger.info worksheet[17][4].is_struckthrough
logger.info worksheet[17][4].is_underlined
 

Ответ №2:

Добавьте to_a в конце, и это решит вашу проблему.