gpt4 book ai didi

c# - Worksheet.SaveAs 方法保存所有工作表

转载 作者:行者123 更新时间:2023-11-30 22:03:55 26 4
gpt4 key购买 nike

使用 C# 编写一个方法,从工作簿中取出单个工作表并将其另存为 HTML。

我正在使用 MSDN 中描述的 Worksheet.SaveAs 方法.

但是,当我查看输出时,它已经消失并保存了工作簿中的所有工作表,而不仅仅是我选择的那个。就好像 Worksheet.SaveAs 和 Workbook.SaveAs 只是做同样的事情。

简化代码:

public static void saveSingleSheetAsHTML(string workbook, string destination, string sheetName)
{
Application excel = new Application();
excel.Workbooks.Open(Filename: workbook);
Microsoft.Office.Interop.Excel._Worksheet worksheet = excel.Worksheets[sheetName];
var format = Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml;
worksheet.SaveAs(destination, format);
}

现在,当我打开生成的 HTML 文件时,它只导出了整个工作簿,而不是工作表。

最佳答案

Tim Williams 所说在我点击 I love my monkey 发布的链接后发现的评论中以上:

"You cannot call SaveAs on a worksheet - first call .Copy to create a standalone new workbook containing only that sheet, then save that workbook."

不知道为什么不能。 MSDN 上的文档对此没有提供任何线索,并建议它应该是可能的。

所以创建了一个新的工作簿:

var newbook = excel.Workbooks.Add(1);

复制工作表,将其作为第一张工作表:

excelWorksheet.Copy(newbook.Sheets[1]);

然后删除默认的“Sheet1”,它永远是第二张:

newbook.Worksheets[2].Delete();

然后调用SaveAs方法,然后关闭新书:

newbook.SaveAs(Filename: destination, FileFormat: format);
newbook.Close();

这确实将新工作簿保存为 HTML,但也将选项卡放在底部,我希望避免这种情况,因为现在只有 1 个选项卡。它确实满足了我的最低需求,但我想弄清楚如何让它更整洁。

关于c# - Worksheet.SaveAs 方法保存所有工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25666210/

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