C# 如何使用OpenXML检查excel中的自引用单元格公式

C# 如何使用OpenXML检查excel中的自引用单元格公式,c#,openxml,openxml-sdk,C#,Openxml,Openxml Sdk,是否有任何方法可以使用OpenXML C#在excel中找到自引用单元格公式。我不知道如何找到自引用单元格公式。例如,单元格C3具有公式=和(C1:C5)。如何识别该公式有自引用单元格?或者我可以从这个公式中得到所有的单元格名吗? 我的代码是: SpreadsheetDocument excelDocument = SpreadsheetDocument.Open(FilePath, true); WorkbookPart wbPart = excelDocument.WorkbookP

是否有任何方法可以使用OpenXML C#在excel中找到自引用单元格公式。我不知道如何找到自引用单元格公式。例如,单元格C3具有公式=和(C1:C5)。如何识别该公式有自引用单元格?或者我可以从这个公式中得到所有的单元格名吗? 我的代码是:

SpreadsheetDocument excelDocument = SpreadsheetDocument.Open(FilePath, true);    
WorkbookPart wbPart = excelDocument.WorkbookPart;
string sheetId = wbPart.Workbook.Descendants<Sheet>().First().Id;
WorksheetPart wsPart = (WorksheetPart)(wbPart.GetPartById(sheetId));
IEnumerable<Cell> theCells = wsPart.Worksheet.Descendants<Cell>();
foreach (Cell thecell in theCells)
{     
  string strFormula = thecell.CellFormula.InnerText;
}
SpreadsheetDocument excelDocument=SpreadsheetDocument.Open(FilePath,true);
WorkbookPart wbPart=excelDocument.WorkbookPart;
string sheetId=wbPart.Workbook.subjections().First().Id;
工作表部件wsPart=(工作表部件)(wbPart.GetPartById(sheetId));
IEnumerable theCells=wsPart.Worksheet.subjects();
foreach(单元格中的单元格)
{     
字符串strFormula=thecell.CellFormula.InnerText;
}

我想没有一种一站式的方法可以做到这一点,因为单元格引用可能非常模糊(通过间接方式)。是否必须100%准确,或者如果代码仅检测到某些情况下的自引用公式,而不是所有情况,是否可以?如果代码仅检测到某些情况下的自引用公式,则可以。你能帮我解决这个问题吗?看看文档,API似乎没有任何帮助。不过我什么也没做。如果我是你,我会查看单元格公式是否有任何子节点(可能没有)。如果不是的话,很可能没有内在的方式。然后您仍然可以进行基于字符串的分析。我首先排除数字和函数(很容易找到,因为数字不是以字母开头的,函数有括号),然后你可以查找单元格和范围,最后匹配每个单元格和范围,找到它们是否相等/包含自身