1

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

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

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

4

1 回答 1

0

您可以使用以下方法之一获取计数:

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

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

row.Count()

我测试了所有这些,它们工作正常。在验证返回计数的正确性时,请记住以下几点:
- 隐藏列包含在计算中
- 合并的单元格单独计算。如果您的 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();

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

((MergeCell)mergeList.ElementAt(i)).Reference
于 2013-03-27T12:29:58.620 回答