我正在使用代码生成电子表格,其中包括某些行单元格的公式。当我这样做时,公式出现了问题,当我尝试打开电子表格时,Excel 会询问是否应该修复工作表。如果我说是,它会通过从工作表中删除我的公式的所有痕迹来实现这一点。如果我说否,它就不会完成打开工作表。
有没有办法可以打开电子表格而不进行修复,这样我就可以检查由我的代码生成的公式。如果我将公式复制并粘贴到删除它的单元格之一中,它就可以正常工作。我真的需要在打开生成的工作表时查看公式中存在什么问题。有什么办法吗?
我正在使用 EPPlus Excel 库中的以下代码添加公式:
for (var r = startAt + 2; r < endAt; r++)
{
var amountFormula =
$@"=SWITCH(C{r}; ISBLANK(D{r}); """"; ""Percentage""; IF(ISNUMBER(D{r}); D{r}; 0) * IF(ISNUMBER(E{r}); E{r}; 0) / 100; IF(ISNUMBER(D{r}); D{r}; 0) * IF(ISNUMBER(E{r}); E{r}; 0))";
ws.Cells[$"F{r}"].Formula = amountFormula;
}
请注意,如果我{r}
用适当的行号替换并将公式粘贴到工作表中,此公式就会有效。
答案1
Excel 会询问是否应修复工作表。如果我选择是,它会从工作表中移除我公式的所有痕迹。如果我选择否,它就不会完成打开工作表的操作。
我认为您已经尝试了这里的所有选择。
一种解决方法是将公式作为文本插入单元格(ws.Cells[$"F{r}"].Value = amountFormula;
),然后您就可以打开工作表并检查公式。
(如果 Excel 仍然对您的公式提出异议,您甚至可以在前面添加'
:)ws.Cells[$"F{r}"].Value = "'" & amountFormula;