Axlsx, построение динамических столбцов

Мне поручено сделать плагин для создания динамического отчета для одной из наших систем здесь на работе. дело в том, что эти отчеты достаточно сложны с 19 рабочими листами на каждый лист. Каждый лист содержит несколько таблиц, которые будут заполнены различными суммами и типами данных, включая проверки данных (выпадающие списки).

Моя первоначальная мысль позволила найти рубиновый камень. так как его приложение для рельсов. от него мало чего выбрать, но я нашел Axlsx, который похож на мою последнюю надежду.

Одна из таблиц имеет 6 столбцов, из которых 4 требуется проверка данных.

Теперь я видел, что вы можете .add_style каждый столбец и даже изменять форматы с .add_style метода .add_style ,

 p.workbook do |wb| # define your regular styles styles = wb.styles title = styles.add_style :sz => 15, :b => true, :u => true default = styles.add_style :border => Axlsx::STYLE_THIN_BORDER header = styles.add_style :bg_color => '00', :fg_color => 'FF', :b => true profit = styles.add_style :border => Axlsx::STYLE_THIN_BORDER percent = styles.add_style :num_fmt => Axlsx::NUM_FMT_PERCENT, :border => Axlsx::STYLE_THIN_BORDER 

и применять эти стили при создании строк.

 ws.add_row ['Quarter', 'Profit', '% of Total'], :style => header ws.add_row ['Q1-2010', 'yes', '=B4/SUM(B4:B7)'], :style => [default, profit, percent] 

и я видел, что есть способ проверки данных.

 p.workbook.add_worksheet(name: "dropdown") do |ws| ws.add_row ["rank_type"] ws.add_data_validation("A2:A1000", { :type => :list, :formula1 => 'lists!A2:A4', :showDropDown => false, :showErrorMessage => true, :errorTitle => '', :error => 'Please use the dropdown selector to choose a valid rank type', :errorStyle => :stop, :showInputMessage => true, :promptTitle => 'Rank type', :prompt => 'Please select a valid rank type'}) end 

но есть ли способ указать ячейки, требующие проверки при добавлении строк. или добавить их в таблицы с различными размерами?

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

  boolean_validation = format.add_data_validation :type => list, :formula => 'lists!A2:A4'... (rest of the options) 

затем при создании строк

  ws.add_row ['Q1-2010', 'yes', '=B4/SUM(B4:B7)'], :style => [default, profit, percent], :format => [nil, boolean_validation, nil] 

Может ли кто-нибудь попытаться что-то подобное сделать, это даже возможно? или кто-то получил представление о том, как

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

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

Я думаю, вы можете найти метод Axlsx.cell_range, потому что он может принимать массив ячеек и возвращать ссылку типа типа A1: A9.

К сожалению, структура дерева объектов OOXML затрудняет определение проверки на основе ячейки по ячейкам, но не стесняйтесь добавлять проблему в репозиторий github.

https://github.com/randym/axlsx

Лучший

randym

  • Скрытый столбец после экспорта в excel, если таблица имеет менее 4 столбцов (SSRS)
  • Изменение цветовой палитры SSRS 2008
  • Экспорт запроса из отчета при доступе к excel с параметрами
  • Создание шаблона rtf с несколькими электронными таблицами (excel)
  • SSRS 2008 R2 превосходит экспорт не работает на сервере отчетов
  • ReportViewer - Как я могу отображать файлы Excel с более чем 65 000 строк?
  • PivotTable Report Действие Ограничение по URL-адресу 1024
  • Экспорт SSRS в Excel теряет пользовательскую высоту строки
  • Какие варианты я оставил с SSRS для данного сценария
  • остановка Ms Excel автоматическое форматирование числовых строк в виде чисел
  • SQL-запрос для создания списка доступа пользователей к серверам
  • Interesting Posts

    Как сравнить файлы Excel

    Excel – как скрыть значение в datalebel диаграммы

    Как избежать сброса глобальных переменных, заданных из пользовательской формы для использования в другом модуле?

    Python Pandas DataFrame: как обрабатывать столбец, состоящий из dicts, в несколько столбцов, определяемых ключами dicts?

    Python: использование модуля xlrd для получения строки ячейки, столбца

    PHPExcel не может читать рассчитанное значение из разных таблиц

    Как поместить изображение в ячейку excel java?

    Excel VBA – ошибка времени выполнения 13 (застрял в формуле +1)

    Использование Excel 2007 VBA для добавления событий в Календарь Google

    Создание нескольких строк на основе столбцов

    Рабочий лист зависает при прокрутке на панели задач во время выполнения задачи

    Экспорт содержимого электронной почты в Excel / Google Таблицы

    Проверка дубликатов подстрок в Excel

    Не удалось выполнить синтаксический анализ Excel, xml + xsl

    excel в java, как использовать один столбец данных для печати другого?

    Давайте будем гением компьютера.