如何获得';第一';使用C#和SDK在OOXML中创建工作表?
所以!:)简单的问题——可能有人问过,但我找不到。 我正在使用OpenXMLSDK和C#从XLSX检索数据。 我想得到“第一张”工作表(就像你在Excel中看到的第一张),但是当我使用如何获得';第一';使用C#和SDK在OOXML中创建工作表?,c#,xml,excel,sdk,openxml,C#,Xml,Excel,Sdk,Openxml,所以!:)简单的问题——可能有人问过,但我找不到。 我正在使用OpenXMLSDK和C#从XLSX检索数据。 我想得到“第一张”工作表(就像你在Excel中看到的第一张),但是当我使用 WorkbookPart wbPart = workBook.WorkbookPart; //Now let's find the dimension of the first worksheet string sheetArea = wbPart.WorksheetParts.First().Workshee
WorkbookPart wbPart = workBook.WorkbookPart;
//Now let's find the dimension of the first worksheet
string sheetArea = wbPart.WorksheetParts.First().Worksheet.SheetDimension.Reference.Value;
不幸的是,在一个全新的XLSX中,这会拉“Sheet3”而不是“Sheet1”。我无法提前知道工作表名称,也无法强制用户提交只有一张工作表的工作簿或指定工作表名称。我现在的要求是拿到第一张纸
有人能帮忙吗?:)
编辑:我想出来了!但是我有7个小时不能回答我自己的问题,所以
我通过深入研究另一个问题的答案发现了这一点:
本质上,一个可行的例子可能是:
(wbPart.GetPartById(wbPart.Workbook.Sheets.Elements<Sheet>().First().Id.Value) as WorksheetPart).Worksheet.SheetDimension.Reference.Value
(wbPart.GetPartById(wbPart.Workbook.Sheets.Elements().First().Id.Value)作为工作表部分)。工作表。工作表维度。参考值
据我所知,类似于:
Sheet firstSheet = wbPart.Workbook.Descendants<Sheet>().First();
Worksheet firstWorksheet = ((WorksheetPart)wbPart.GetPartById(firstSheet.Id)).Worksheet;
Sheet firstSheet=wbPart.Workbook.subjections().First();
工作表firstWorksheet=((工作表部分)wbPart.GetPartById(firstSheet.Id)).Worksheet;
应返回第一个工作表。至少根据我的经验,工作簿工作表子体应始终根据它们在工作簿中出现的顺序进行排序
如果您希望看到第一个,请使用:
Sheet firstSheet = wbPart.Workbook.Descendants<Sheet>()
.First(s => s.State == SheetStateValues.Visible);
Sheet firstSheet=wbPart.Workbook.subjections()
.First(s=>s.State==SheetStateValues.Visible);