1

我正在构建一个 ruby​​ 类/组件以在我的 Rails 项目中使用,以基于 Excel .xlsx 文件创建报告/导出。使用该组件,我可以打开一个“模板”.xlsx 文件,将数据按行添加到工作表中,保存然后将文件下载给用户。几个月来它一直运行良好。

现在我需要获取一个预先存在的 .xlsx 文件(想想“表单”),将其作为模板打开,在多个单元格中插入值,然后保存并下载给用户。在大多数情况下,该过程有效。一个问题是,我正在使用数据更新的单元格之一位于应用了 SUM 函数的单元格范围内。问题:SUM 单元格中没有正确的总和。

我在下载时检查了 Excel 中的单元格,以及底层的 xml - 单元格及其数据是数字 - 而不是文本。当我尝试手动重新计算工作表时 - nada。我可以更新正在获取 SUM 的范围内的其他单元格之一,它神奇地开始工作 - SUM 单元格显示正确的总数。

我今天早些时候读过一篇文章,提到从总字段中删除元素,以便在打开电子表格时向 Excel 发出信号,表明它应该重新计算 - 不。

一旦我进一步了解这个组件,我真的很想开源这个组件;我认为这对 Ruby 社区有很大帮助。提前感谢您的帮助!

4

1 回答 1

1

听起来您需要将元素的fullCalcOnLoad属性设置为true:calcPr

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

这将导致 Excel 文档在打开文件时在所有工作簿中执行计算。

于 2011-09-17T20:07:59.573 回答