用电子表格灯检测.XLSX中#N/A的正确方法

本文关键字:方法 电子表格 检测 XLSX | 更新日期: 2023-09-27 17:58:37

我有一个Excel文件(.xlsx),我通过Spreadsheet Light在C#中打开它。

由于SVERWEIS(在德语中,我认为它在英语中是VLOOKUP),某些单元格可能具有值#N/A(或Excel的语言版本使用的任何表示形式)。

通过SL检测此单元格错误的正确方法是什么?我目前正在检查单元格的字符串表示是否为"#N/A",这可能不是最好的方法。是否有我错过的"正确"检查?

我目前的工作:

using(SLDocument doc = new SLDocument(filename))
{
    if(doc.GetCellValueAsString("A11") != "#N/A")
        //Do error handling here
}

我想做的更像是:

using(SLDocument doc = new SLDocument(filename))
{
    if(doc.HasCellError("A11")) //This function doesn't exist (yet?)
        //Do error handling here
}

这将消除使用魔术串#N/A的看起来很粗糙的解决方案。

用电子表格灯检测.XLSX中#N/A的正确方法

excel中有一个名为IFERROR的函数,它允许您捕捉错误,并在出现错误时返回自己的自定义值。如果VLOOKUP正常返回一个值,则没有错误,并且返回查找到的值。如果VLOOKUP返回#N/A错误,IFERROR将接管并返回您提供的值。

=IFERROR(VLOOKUP(B10,table,2,FALSE),"Not found")

这将返回消息"未找到"而不是#N/A,然后您可以检查您设置的特定值。我不确定这是否是最好的检查方式,但我相信它可以改进您当前的解决方案。