我有合并单元格的问题。如果我在第一个单元格 (B3) 中有值,并且该单元格与其他一些单元格(例如 C3、D3、E3、F3、F4)合并 - 在 Excel 文档中,我只能看到一个值。这很好,但是当我要求 C3、D3、E3、F3 值时,我想从我的 GetCellValue 函数中获得相同的 B3 值。
我想有必要找到所有合并的单元格列表并从第一个单元格中读取值 - 但是如何使用 OpenXml 做到这一点?
public string GetCellValue(char ch, int y)
{
WorksheetPart wsPart = GetWorksheetPart(_sheetName);
var addressName = new StringValue(ch + "" + y);
Cell cell = wsPart.Worksheet.Descendants<Cell>().
Where(c => c.CellReference.Value == addressName).FirstOrDefault();
if (cell == null)
return null;
return cell.InnerText;
}
更新:
我找到了部分解决方案(在 OpenXML 中查找合并的列名):
List<MergeCells> mergeCells;
WorksheetPart wsPart = GetWorksheetPart(_sheetName);
if (wsPart.Worksheet.Elements<MergeCells>().Count() > 0)
{
mergeCells = wsPart.Worksheet.Elements<MergeCells>().ToList();
string cells = mergeCells[0].OuterXml;
}