Проверить количество столбцов в файле .xls перед загрузкой в ​​RAILS

Я загружаю файл .xls, используя CarrierWave Gem в Rails. Перед загрузкой файла xls я хочу проверить, что файл .xls:

1) содержит определенное количество столбцов

2), что первая строка содержит определенные заголовки.

Я честно даже не знаю, с чего начать. Я знаю, что валидации должны произойти в модели, и я также видел, что есть жемчужина для проверки для csv, но ничего для xls. Я просто должен быть направлен в правильном направлении.

Вы можете попробовать драгоценный камень Roo

sheet = Roo::Excel.new("./excel_file.xls") # Get the header sheet.row(1) # Number of columns sheet.last_column 

http://railscasts.com/episodes/396-importing-csv-and-excel

Для проверки просто создайте метод, который мог бы работать:

 def validate(sheet) errors = [] header = sheet.row(1) num_of_columns = sheet.last_column errors << 'Need headers' unless (ARRAY_OF_NEEDED_HEADERS - header).empty? errors << 'Need more columns' if num_of_columns < NUMBER_OF_COLUMNS errors end 

Вы можете создать свой собственный валидатор на модели: http://guides.rubyonrails.org/active_record_validations.html#performing-custom-validations

  • Заполните специальный текст из другого списка в соответствии с выбранной выпадающей записью
  • Можно ли добавить значение в Named Range?
  • Ошибка списка проверки данных
  • Excel VBA Worksheet.Изменить работу
  • Проверка открытых данных Office
  • Что не так с использованием этого именованного диапазона для проверки списка?
  • Создайте отфильтрованный динамический выпадающий список
  • Проверка данных Excel 2010 Динамический диапазон оценивается с ошибкой
  • Измените значение ячейки на основе введенного значения
  • Как добавить проверку данных для ячейки в excel с помощью Spreadsheetgear - C # .NET
  • Создание настраиваемого массива
  • Давайте будем гением компьютера.