Я пытаюсь добавить новый рабочий лист в книгу Excel и сделать это последним листом в книге в С# 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
и Move
, без радости!
Вот что я пробовал, поэтому мой вопрос: как добавить лист в книгу Excel и сделать это последним листом в книге с помощью С# Excel Interop?
Спасибо