在Excel电子表格中访问行单元格计数

我需要知道如何使用OpenXML获取Row对象中的单元格的数量。 目前,我正在使用

row.Descendants<Cell>().Count<Cell>() 

但是这是不正确的。 任何想法什么方法/财产给我的细胞数量?

您可以使用以下其中一种方法获得计数:

 row.Descendants<Cell>().Count<Cell>() //The one you used row.Elements<Cell>().Count<Cell>() row.Count() 

我testing了所有这些,他们正常工作。 在validation返回计数的正确性时请记住以下几点:
– 计算中包含隐藏的列
– 合并的细胞分开计数。 如果你的excel表单包含3列A,B和C,但是A和B被合并 ,那么单元格的数量是3而不是2

您可以使用以下方式提取工作表中所有合并单元格的列表:

 SpreadsheetDocument ExcelSpreadSheet = SpreadsheetDocument.Open(ReportFile, true); WorksheetPart ExcelWSP = GetWorksheetPartByName(ExcelSpreadSheet, TemplateEntity.ExcelSheetName); MergeCells mergeList = ExcelWSP.Worksheet.Elements<MergeCells>().First(); 

合并信息保存在“引用”属性中,您可以使用以下命令访问它:

 ((MergeCell)mergeList.ElementAt(i)).Reference