我正在使用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中可能更直接,但目前还不能升级。
答案 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;
}