2

我有合并单元格的问题。如果我在第一个单元格 (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;
        }
4

1 回答 1

2
if (wsPart.Worksheet.Elements<MergeCells>().Count() > 0)
{
     MergeCells mergeCells = wsPart.Worksheet.Elements<MergeCells>().First();
     foreach (MergeCell mergeCell in mergeCells)
     {
         // mergeCell.
     }
}
于 2015-09-21T07:25:43.857 回答