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

时间:2012-09-28 21:06:01

标签: c# excel openxml spreadsheet

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

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

但这根本不正确。任何想法什么方法/属性给我细胞计数?

1 个答案:

答案 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