結合セルに問題があります。最初のセル (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;
}