我正在尝试向 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 未处理 - 来自 HRESULT 的异常:0x800A03EC
我在 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);
}
}
}
我得到与上面相同的错误。我还尝试将上一个工作表的名称作为字符串作为After
参数传递给Add
andMove
方法,不高兴!
这就是我尝试过的,所以我的问题是如何将工作表添加到 Excel 工作簿并使用 C# Excel Interop 将其作为工作簿中的最后一个工作表?
谢谢