c# – 打开XML SDK 2.0,通过名称访问excel 2010工作表
发布时间:2020-12-15 03:53:00 所属栏目:百科 来源:网络整理
导读:我有一个Excel 2010电子表格,有3个工作表名为Sheet1,Sheet2和Sheet3. 我试图通过名称获得对工作表的引用. 我使用的代码: using (SpreadsheetDocument myWorkbook = SpreadsheetDocument.Open(FileName,true)){ //Access the main Workbook part,which conta
我有一个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(); 这让我参考了工作表,但不是表格上的数据 谢谢 解决方法
你真正想要的是WorksheetPart,它是包含您正在寻找的SheetData.在“工作簿”下抓取工作表将只会提供有关工作表的某些元数据.下面是一个关于如何抓取WorksheetPart的例子(可以随意添加错误检查,因为我认为通过调用First而不是FirstOrDefault已经存在sheetName)
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参考,您就可以从中找到所需的数据. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |