Ich versuche, ein neues Arbeitsblatt zu einer Excel-Arbeitsmappe hinzuzufügen und dieses zum letzten Arbeitsblatt in dem Buch in C# Excel Interop zu machen.Excel Interop - Fügen Sie ein neues Arbeitsblatt nach allen anderen hinzu
Es scheint wirklich einfach, und ich dachte, der folgende Code würde es tun:
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);
}
}
}
Schön sei es. Ich erhalte diese hilfreiche Fehler:
COMException was unhandled - Exception from HRESULT: 0x800A03EC
I this page auf Microsoft.com gefunden, die vorgeschlagen, dass ich versuchen, und fügen Sie das Blatt und dann bewegen sie so versuchte ich, dass wie unten gezeigt. Ich weiß, dass diese Webseite 95 Excel zielt aber die VBA ist immer noch da so zu verwenden, ich habe gehofft, es würde immer noch funktionieren:
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);
}
}
}
ich die gleichen Fehler wie oben. Ich habe auch versucht, den Namen meines letzten Arbeitsblattes als eine Zeichenfolge wie der After
Parameter in den Add
und Methoden, keine Freude zu übergeben!
Das ist, was ich versucht habe, so meine Frage ist, wie füge ich ein Arbeitsblatt zu einer Excel-Arbeitsmappe und machen dies das letzte Blatt in der Arbeitsmappe mit C# Excel Interop?
Dank
JMK - nicht eine Antwort auf Ihr Problem, aber vielleicht ein hilfreicher Zeiger für C# und Excel. Ich benutze die LinqToExcel-Bibliothek seit einiger Zeit und kann wirklich nicht ausdrücken, wie viel sauberer eine Erfahrung ist, die VS interop Methodik verwendet. Wenn Sie Zeit haben, schauen Sie sich an, ob es Ihren Anforderungen entspricht. https://github.com/paulyoder/LinqToExcel auch http://code.google.com/p/linqtoexcel/ –
@jimtollan Danke für die Köpfe hoch, werde ich einen Punkt der Überprüfung von LinqToExcel, es sieht gut aus. Vielen Dank! – JMK