代码之家  ›  专栏  ›  技术社区  ›  AwesomeTown

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

  •  2
  • AwesomeTown  · 技术社区  · 15 年前

    我正在使用Microsoft的OpenXML SDK的1.0版对.xlsx文件进行一些基本的解析。我可以得到并分析工作表,我可以得到工作表名称的列表,但我一辈子都无法弄清楚如何将哪个名称与哪个工作表链接起来。

    我知道一个元素 <sheet name="My Sheet" sheetId="1" r:id="rId1"/> 在工作簿中,通过中定义的关系链接到特定的工作表。 xl/_rels.xml 但是我看不到任何关系信息在API中的公开位置。

    我使用的是C,但是任何vb.net示例都同样有用。

    我觉得这应该很简单,但我想不出来。在SDK的2.0版中,它看起来可能更简单,但目前升级不是一个选项。

    2 回复  |  直到 13 年前
        1
  •  2
  •   AwesomeTown    15 年前

    啊…是的,结果很简单。这个 WorkbookPart 类公开了 WorksheetParts 属性,但它还公开了 GetPartById(relationshipId) 方法。

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

        2
  •  1
  •   Chris Walsh    13 年前
    // 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;
    }