【发布时间】:2009-04-01 15:07:42
【问题描述】:
我正在处理的一个项目需要来自 C# 应用程序的值来更新 Excel 工作表中的 6 个值。然后,此 Excel 工作表填充指定范围的项目和价格,由同一 Excel 文件中的许多 VLOOKUP 公式和工作表驱动。
范围中的两列分别命名为“商品”和“价格”。
'Item' 是从电子表格上的公式连接起来的一列项目,这些项目在 DataTable 中显示得很好。但是,“价格”列中的任何值(来自 VLOOKUP 公式的所有数值)都不会出现在 DataTable 中。
在 C# 中加载 DataTable 时,我可以看到 string 和 double 两列的类型都很好。如果我用硬编码值替换公式派生值之一,则 DataTable 很好,所以我猜 DataTable 本身正在按预期工作。
如果我在将值传入 Excel 文件后打开它,我可以看到输入值正常,并且公式计算正确。
所以,我能想到的唯一问题是在将值传递给公式后没有重新计算公式。
有没有办法在 C# 中打开一个 excel 文件并让它重新计算所有公式?
【问题讨论】:
-
您使用哪个驱动程序打开 excel 表? OLEDB 还是 ODBC?
-
抱歉,OLEDB 用于更新查询(将值添加到工作表)和用于填充 DataTable 的选择查询