gpt4 book ai didi

c# - Excel Interop - 在所有其他工作表之后添加一个新工作表

转载 作者:IT王子 更新时间:2023-10-29 04:14:02 26 4
gpt4 key购买 nike

我正在尝试向 Excel 工作簿添加一个新工作表,并在 C# Excel Interop 中将其设为书中的最后一个工作表。

看起来很简单,我认为下面的代码可以做到:

using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
var excel = new Excel.Application();

var workbook = excel.Workbooks.Open(@"C:\test\Test.xlsx");
workbook.Sheets.Add(After: workbook.Sheets.Count);

workbook.Save();
workbook.Close();

Marshal.ReleaseComObject(excel);
}
}
}

没有这样的运气。我得到这个有用的错误:

COMException was unhandled - Exception from HRESULT: 0x800A03EC

我找到了 this page在 Microsoft.com 上建议我先尝试添加工作表然后移动它,所以我尝试了如下所示。我知道这个网页是针对 Excel 95 的,但 VBA 仍然可以使用,所以我希望它仍然可以工作:

using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
var excel = new Excel.Application();

var workbook = excel.Workbooks.Open(@"C:\test\Test.xlsx");
workbook.Sheets.Add();
workbook.Sheets.Move(After: workbook.Sheets.Count);

workbook.Save();
workbook.Close();

Marshal.ReleaseComObject(excel);
}
}
}

我得到了和上面一样的错误。我还尝试在 AddMove 方法中将我最后一个工作表的名称作为字符串作为 After 参数传递,没有乐趣!

这就是我尝试过的方法,所以我的问题是如何使用 C# Excel Interop 将工作表添加到 Excel 工作簿并使其成为工作簿中的最后一张?

谢谢

最佳答案

在这里查看文档 http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.move(v=vs.80).aspx ,它表示“after”对象不是数字位置;它是代表您要在其后放置工作表的工作表的对象。代码可能应该是这样的(未经测试):

workbook.Sheets.Add(After: workbook.Sheets[workbook.Sheets.Count]); 

关于c# - Excel Interop - 在所有其他工作表之后添加一个新工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12156302/

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