gpt4 book ai didi

c# - 如何使用 Open XML SDK 2.5 设置事件工作表

转载 作者:太空狗 更新时间:2023-10-29 21:22:30 25 4
gpt4 key购买 nike

在这里使用示例 How to Copy a Worksheet within a Workbook

我已经成功地克隆/复制了我的 excel 文件中的工作表,但是当我打开 excel 时,第二张工作表是事件(可见)工作表。我一直无法找到可以做事的属性.....有什么方法可以指定哪个工作表处于事件状态?

我试图通过打开并编辑文件中的第一个工作表来强制执行它,认为它是最后一个处于事件状态的编辑工作表,但也没有用。

任何帮助都会很棒。时间差

更新:查看将 .xlsx 重命名为 .zip 时创建的 workbook.xml 我遇到了“activeTab”属性。快速更改了我的代码,似乎工作正常

public void SetFirstSheetInFocus(String xlsxFile)
{
using (SpreadsheetDocument spreadSheet = SpreadsheetDocument.Open(xlsxFile, true))
{
//Get a reference to access the main Workbook part, which contains all references
WorkbookPart _workbookPart = spreadSheet.WorkbookPart;
if (_workbookPart != null)
{
WorkbookView _workbookView = spreadSheet.WorkbookPart.Workbook.BookViews.ChildElements.First<WorkbookView>();
if (_workbookView != null)
{
_workbookView.ActiveTab = 0; // 0 for first or whatever tab you want to use
}
// Save the workbook.
_workbookPart.Workbook.Save();
}

}
}

最佳答案

如果你的工作表名称在变量中

sheetName  

您可以像这样设置具有该名称的工作表:

using (var spreadsheetDoc = SpreadsheetDocument.Open(emptyHIPTemplatePath, true /* isEditable */, new OpenSettings { AutoSave = false }))
{
var workbookPart = spreadsheetDoc.WorkbookPart;
var workBook = spreadsheetDoc.WorkbookPart.Workbook;
var sheet = workBook.Descendants<Sheet>().FirstOrDefault(s => s.Name == sheetName);

var sheetIndex = workBook.Descendants<Sheet>().ToList().IndexOf(sheet);
var workBookView = workBook.Descendants<WorkbookView>().First();
workBookView.ActiveTab = Convert.ToUInt32(sheetIndex);

...
workBook.Save();
}

关于c# - 如何使用 Open XML SDK 2.5 设置事件工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22922011/

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