我有一个 Excel 2010 电子表格,其中有 3 个工作表,分别名为 Sheet1、Sheet2 和 Sheet3。
我正在尝试按名称获取对工作表的引用。
我正在使用代码:
using (SpreadsheetDocument myWorkbook = SpreadsheetDocument.Open(FileName, true))
{
//Access the main Workbook part, which contains all references
WorkbookPart workbookPart = myWorkbook.WorkbookPart;
WorksheetPart worksheetPart = workbookPart.WorksheetParts.Last();
// this gives me Sheet1
SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();
}
我正在尝试获取对 Sheet2 的引用,但我找不到方法来执行此操作。
我越来越接近了,但我还没有到达那里:
var x = workbookPart.Workbook.Sheets.Where(s=> s.GetAttribute("name", "").Value == "Sheet2").FirstOrDefault();
这让我参考了工作表,但没有参考工作表上的数据
Thanks
你真正想要的是WorksheetPart
其中包含SheetData
您正在寻找的。抓住Sheets
在下面Workbook
只会为您提供有关工作表的某些元数据。这是一个关于如何获取它的示例WorksheetPart
(随意添加错误检查,因为我认为合适sheetName
通过调用已经存在First
并不是FirstOrDefault
)
public WorksheetPart GetWorksheetPart(WorkbookPart workbookPart, string sheetName)
{
string relId = workbookPart.Workbook.Descendants<Sheet>().First(s => sheetName.Equals(s.Name)).Id;
return (WorksheetPart)workbookPart.GetPartById(relId);
}
然后只需使用上面的代码获取正确的 SheetData 引用,您就可以从那里找到您想要的数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)