我需要知道如何使用OpenXML获取Row对象中的单元格数。目前,我正在使用
row.Descendants<Cell>().Count<Cell>()
但这根本不正确。任何想法什么方法/属性给我细胞计数?
答案 0 :(得分:0)
您可以使用以下方法之一获取计数:
row.Descendants<Cell>().Count<Cell>() //The one you used
row.Elements<Cell>().Count<Cell>()
row.Count()
我测试了所有这些并且它们正常工作。在验证返回计数的正确性时,请记住以下几点:
- 隐藏列包含在计算中
- 合并细胞分开计数。如果您的Excel工作表包含 3列A,B&amp; C,但A&amp; B合并,然后单元格的数量 3而不是2
您可以使用以下方法提取工作表中所有合并单元格的列表:
SpreadsheetDocument ExcelSpreadSheet = SpreadsheetDocument.Open(ReportFile, true);
WorksheetPart ExcelWSP = GetWorksheetPartByName(ExcelSpreadSheet, TemplateEntity.ExcelSheetName);
MergeCells mergeList = ExcelWSP.Worksheet.Elements<MergeCells>().First();
合并信息保存在Reference属性中,您可以使用以下命令访问它:
((MergeCell)mergeList.ElementAt(i)).Reference