使用OpenXML SDK 1.0将工作表与其名称相关联

时间:2010-06-14 19:47:55

标签: .net openxml openxml-sdk

我正在使用Microsoft的OpenXML SDK 1.0版来对.xlsx文件进行一些基本的解析。我可以得到并解析工作表,我可以得到一个工作表名称列表,但我不能为我的生活找出如何将名称与工作表联系起来。

我理解工作簿中的<sheet name="My Sheet" sheetId="1" r:id="rId1"/>之类的元素通过xl/_rels.xml中定义的关系链接到特定的工作表,但我无法看到任何关系信息在哪里公开API。

我正在使用C#,但任何VB.NET示例都会有所帮助。

我觉得这应该很简单,但我无法弄清楚。它看起来在SDK的v2.0中可能更直接,但目前还不能升级。

2 个答案:

答案 0 :(得分:2)

唉......是的,它最终变得简单。 WorkbookPart类公开了我在使用时挂起的WorksheetParts属性,但它也公开了GetPartById(relationshipId)方法。

给定工作簿XML中的<sheet/>元素列表 - 每个元素都包含名称和关系ID - 我只需要按ID检索每个WorksheetPart。

答案 1 :(得分:1)

// Iterate Sheets; Get Name and xref WorksheetPart (container for Worksheet)
foreach (Sheet sheet in doc.WorkbookPart.Workbook.Sheets)
{
    string sName = sheet.Name;
    string sID = sheet.Id;

    WorksheetPart part = (WorksheetPart)doc.WorkbookPart.GetPartById(sID);
    Worksheet actualSheet = part.Worksheet;
}