我正在使用 F# 和 Excel 互操作将数据输出到 Excel 电子表格。我的第一种方法是单独设置每个单元格:
worksheet.Range(range1).Value2 <- "=sum(a1:a10)"
worksheet.Range(range2).Value2 <- "=min(a1:a10)"
worksheet.Range(range3).Value2 <- "=max(a1:a10)"
(* etc *)
但是,当有大量公式时,这太慢了,所以我切换到一个数组:
worksheet.Range(range).Value2 <- [| "=sum(a1:a10)"
"=min(a1:a10)"
"=max(a1:a10)" |]
或者
worksheet.Range(range).Formula <- [| "=sum(a1:a10)"
"=min(a1:a10)"
"=max(a1:a10)" |]
但是,现在 Excel 只在单元格中显示这些字符串,而不是计算公式的值。我也试过:
worksheet.Range(range).FormulaArray <- [| "=sum(a1:a10)"
"=min(a1:a10)"
"=max(a1:a10)" |]
但这与每个公式的目标范围相混淆。我不确定那里发生了什么。(Excel 没有将其保留为"a1:a10"
,而是根据公式所在的位置翻译了目标范围。)
有一个更好的方法吗?
更新:我也尝试使用“=MIN($G$2:$G$5)”,但产生了相同的效果,其中 Excel 只是显示字符串而不评估公式。
对于它的价值,当我输入单元格时,擦除然后重新添加公式中的任何字符,当我点击“输入”时,Excel 将对其进行评估。
更新 2:我还尝试了以下方法:
worksheet.Range(range).FormulaR1C1 <- [| "=sum(R2C[0]:R4C[0])"
"=average(R2C[0]:R4C[0])"
"=min(R2C[0]:R4C[0])"
"=max(R2C[0]:R4C[0])" |]
但我遇到了同样的问题:Excel 将它们呈现为字符串而不是评估公式。