我有合并细胞的问题。如果我在第一个单元格(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;
}
答案 0 :(得分:2)
if (wsPart.Worksheet.Elements<MergeCells>().Count() > 0)
{
MergeCells mergeCells = wsPart.Worksheet.Elements<MergeCells>().First();
foreach (MergeCell mergeCell in mergeCells)
{
// mergeCell.
}
}