从行中获取 WorkbookPart

Getting WorkbookPart from row

我正在为示例中所示的 OpenXML 编写和扩展。我想避免必须将 WorkbookPart 作为参数传递。有没有办法直接从行中获取WorkbookPart?

public static string GetCellTextValue(this Row row, WorkbookPart workbookPart, string column)
{            
    var cells = row.Elements<Cell>();
    var cell = cells.Where(p => p.CellReference == column + row.RowIndex.ToString()).FirstOrDefault();

    if (cell.DataType != null)
    {
        if (cell.DataType == CellValues.SharedString)
        {
            int id = -1;

            if (Int32.TryParse(cell.InnerText, out id))
            {
                SharedStringItem item = workbookPart.SharedStringTablePart.SharedStringTable.Elements<SharedStringItem>().ElementAt(id);

                if (item.Text != null)
                {
                    return item.Text.Text;
                }
                else if (item.InnerText != null)
                {
                    return item.InnerText;
                }
                else if (item.InnerXml != null)
                {
                    return item.InnerXml;
                }
            }
        }
    }
    return string.Empty;
}

不幸的是,Open XML SDK 的强类型 类 的 none(例如,WorkbookWorksheetRow) 的属性指向它们所在的 OpenXmlPart(例如,WorkbookPartWorksheetPart)或与其直接容器相关的任何其他部分。除非您以其他方式修改 API,否则您将不得不通过 WorkbookPart