我正在处理的项目需要来自C#应用程序的值来更新Excel工作表中的6个值。然后,此Excel工作表将填充指定的项目和价格范围,由同一Excel文件中的多个VLOOKUP公式和工作表驱动。
该范围内的两列名为“Item”& '价格'。
'Item'是一个从电子表格中的公式连接的项目列,这些项目在DataTable中显示正常。但是,“价格”列中的任何值(VLOOKUP公式中的所有数字值)都不会出现在DataTable中。
在C#中加载DataTable时,我可以看到两列的string和double类型都很好。如果我用硬编码的值替换其中一个公式派生值,那么DataTable就可以了,所以我猜DataTable本身正在按预期工作。
如果我在传递值后打开Excel文件,我可以看到输入值很好并且公式已经正确计算。
所以,我唯一能想到的就是导致问题是在将值传递给公式之后不会重新计算公式。
有没有办法在C#中打开excel文件并让它重新计算所有公式?
答案 0 :(得分:1)
没关系,
使用Excel Interop替换OLEDB更新,使用Interop打开Excel文件允许公式重新计算。