我在合并单元格时遇到问题。如果我在第一个单元格 (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;
}
UPDATE:
我找到了部分解决方案(在 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;
}
if (wsPart.Worksheet.Elements<MergeCells>().Count() > 0)
{
MergeCells mergeCells = wsPart.Worksheet.Elements<MergeCells>().First();
foreach (MergeCell mergeCell in mergeCells)
{
// mergeCell.
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)