gpt4 book ai didi

c# - 使用 Interop C# 保存 Excel 电子表格

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

static void Main()
{
Application excelapp = new Application();
Workbook book = excelapp.Workbooks.Open(@"C:\HWYFAB.xlsx",
0, false, 5, "", "", false, XlPlatform.xlWindows , "",
true, false, 0, true, false, false);

Worksheet sheet = (Worksheet)book.Sheets[1];

Range cell = (Range)sheet.Cells[3, 2];
Console.WriteLine(cell.Text);
cell.ClearContents();
book.Close(true, "HWYFAB.xlsx", false);
excelapp.Quit();
}

该程序按预期运行和退出。它确实将单元格 B3 中的正确值打印到控制台。关闭时询问我是否要替换现有文件。我点击是。当我在 Excel 中打开电子表格时,尽管有 cell.ClearContents(),但该值仍在单元格 B3 中。

有什么想法吗?

最佳答案

您对 cell.ClearContents() 的调用将从单元格中清除公式和值常量。这应该绝对有效。您可以在调用 cell.ClearContents() 后通过测试 cell.Value2 == null 来确认这一点,这应该是 true

我认为您的代码的问题出在对 book.Close(true, "HWYFAB.xlsx", false) 的调用中。问题是您显式传递了工作簿的名称,但您离开了路径。 (请注意,当您打开工作簿时,您将包括完整路径,包括“C:\”目录。)通过在保存时省略工作簿的完整路径,您将保存到当前目录,该目录可能是“我的文档”或其他任何地方。

如果您希望就地保存工作簿,在其原始位置,则应为 Filename 参数传入 Type.Missing。例如:

book.Close(true, Type.Missing, false);

这个想法未经测试,但我相信这对您有用。试一试...

-- 迈克

关于c# - 使用 Interop C# 保存 Excel 电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2693099/

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