读取Excel文件时,我有一个奇怪的行为。 当我打开文件并将其保存在我的Excel版本中时,可以使用xlsx正确读取文件。 但是,当我不触摸它并用xlsx读取它时,某些公式会发生偏移。 这是一个示例:我阅读了我的excel文件,并专注于单元格O124。 在打开并保存它之前(不做任何修改),这是我在O124单元中得到的:
{ t: 'n', v: 18202.970297029704, f: 'O124*(1+P144)*(1+P$146)', w: '18,203',
当然,这里有一个循环引用(在O124上)。 P144和P146也移位。 但是,当我打开它并使用Excel将其保存时(我正在使用Excel 2019),我可以看到公式为N124而不是O124(因此没有循环引用)。 这是他的结果:
{ t: 'n', v: 18202.970297029704, f: 'N124*(1+O144)*(1+O$146)', w: '18,203',
我正确安装了N124,O144和O146。
当我不首先“重新保存”文件时,我真的不明白为什么会有移位。 你有什么主意吗?
[EDIT]我将xlsx包与节点js一起使用,然后使用xlsx-calc包在工作表上进行计算。这是我首先遇到循环引用错误的地方。
非常感谢您的帮助!
答案 0 :(得分:0)
对于那些感兴趣的人,使用最新版本的xlsx软件包(0.14.4)可以解决此问题。 确实,正如该软件包的开发人员所回答的,这是由于excel中共享了公式。 在文件的xml中,我们有:
<c r="N123" s="20">
<f t="shared" ref="M123:O125" si="201">M123*(1+N143)*(1+N$146)</f>
<v>12208.016586040083</v>
</c>
<c r="O124" s="20">
<f t="shared" si="201"/>
<v>18202.970297029704</v>
si
是引用共享公式的索引。最新版本的软件包已解决了该问题。