OOXML - электронная таблица (.XLSX), созданная с помощью Ruby, не будет повторно вызываться - PullRequest
1 голос
/ 15 сентября 2011

Я создаю класс / компонент ruby ​​для использования в моих проектах Rails для создания отчетов / экспорта на основе файлов Excel .xlsx.С помощью компонента я могу открыть «шаблонный» файл .xlsx, добавить данные в строках на лист, сохранить, а затем загрузить файл пользователю.Это работало хорошо в течение нескольких месяцев.

Теперь мне нужно взять уже существующий файл .xlsx (подумайте «форма»), открыть его как шаблон, вставить значения в несколько ячеек, а затем сохранить и загрузить для пользователя.По большей части процесс работает.Единственная проблема заключается в том, что одна из ячеек, которые я обновляю данными, находится в диапазоне ячеек, к которым применяется функция SUM.Проблема: в ячейке SUM нет правильной суммы.

Я проверил ячейку как в Excel при загрузке, так и в лежащем в основе xml - ячейка и ее данные числовые, а не текстовые,Когда я пытаюсь вручную пересчитать лист - нада.Я могу обновить одну из других ячеек в диапазоне, который получает SUM'd, и он волшебным образом начинает работать - ячейка SUM показывает правильную сумму.

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

Я бы очень хотел открыть исходный код этого компонента, как только получу дальнейшее развитие;Я думаю, что это будет БОЛЬШАЯ помощь сообществу Ruby.Заранее спасибо за любую помощь!

1 Ответ

1 голос
/ 18 сентября 2011

Похоже, вам нужно установить для атрибута fullCalcOnLoad элемента calcPr значение true:

<workbook> 
  <calcPr fullCalcOnLoad="1"/> 
</workbook>

Это приведет к тому, что документ Excel выполнит вычисления во всех рабочих книгах, когда файлоткрыт.

...