1
我有合併單元格的問題。如果我在第一個單元格(B3)中有價值,並且此單元格與其他某些單元格(例如C3,D3,E3,F3,F4)合併 - 在Excel文檔中,我只能看到一個值。這很好,但我想從我的GetCellValue函數獲得相同的B3值,當我要求C3,D3,E3,F3值時。如何從使用OpenXML和C的Excel文檔中的合併單元格中獲取值#
我想有必要找到所有合併的單元格列表並從第一個值中讀取值 - 但是如何使用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;
}
'cell.MergeArea'應該給你的細胞對象B3,即使細胞是C3。 (至少這是對象模型在VBA中允許的,不能確定c#和上一個問題一樣;-)) – 2013-02-25 14:44:46