gpt4 book ai didi

c# - 如何使用 C# 和 SDK 获取 OOXML 中的 'first' 工作表?

转载 作者:可可西里 更新时间:2023-11-01 09:02:19 24 4
gpt4 key购买 nike

所以! :) 一个简单的问题——可能有人问过它,但我找不到它。我正在使用 Open XML SDK 和 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 个小时,所以...

我通过挖掘其他 SO 问题的答案发现了这一点:

Open XML SDK 2.0 - how to update a cell in a spreadsheet?

本质上,一个工作示例可能是这样的:

(wbPart.GetPartById(wbPart.Workbook.Sheets.Elements<Sheet>().First().Id.Value) as WorksheetPart).Worksheet.SheetDimension.Reference.Value

最佳答案

据我所知,是这样的:

Sheet firstSheet = wbPart.Workbook.Descendants<Sheet>().First();
Worksheet firstWorksheet = ((WorksheetPart)wbPart.GetPartById(firstSheet.Id)).Worksheet;

应该返回第一个工作表。工作簿 Sheet 后代应始终根据它们在工作簿中出现的顺序进行排序,至少根据我的经验。

如果你想让第一个可见,使用:

Sheet firstSheet = wbPart.Workbook.Descendants<Sheet>()
.First(s => s.State == SheetStateValues.Visible);

关于c# - 如何使用 C# 和 SDK 获取 OOXML 中的 'first' 工作表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7663706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com