Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获得';第一';使用C#和SDK在OOXML中创建工作表?_C#_Xml_Excel_Sdk_Openxml - Fatal编程技术网

如何获得';第一';使用C#和SDK在OOXML中创建工作表?

如何获得';第一';使用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

所以!:)简单的问题——可能有人问过,但我找不到。 我正在使用OpenXMLSDK和C#从XLSX检索数据。 我想得到“第一张”工作表(就像你在Excel中看到的第一张),但是当我使用

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);