2

結合セルに問題があります。最初のセル (B3) に値があり、このセルが他のセル (C3、D3、E3、F3、F4 など) と結合されている場合、Excel ドキュメントでは値が 1 つしか表示されません。これは素晴らしいことですが、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 に答える