Erstellen mehrerer Arbeitsblätter in Excel mit X++
Ich bin derzeit in der Lage, erstellen Sie eine neue Excel-Tabelle schreiben und speichern Sie die Tabelle durch X++.
Habe ich ein paar Methoden in eine neue Klasse, jeder soll schreiben auf ein separates Arbeitsblatt innerhalb der Arbeitsmappe.
Die erste Methode erstellt die Tabelle schreibt die Daten, speichert die Tabelle, und dann beendet Excel einfach gut. Aber innerhalb der nächsten Methode, die ich versuchen, öffnen Sie das gespeicherte Arbeitsblatt, schreiben die auf ein anderes Arbeitsblatt (Registerkarte), speichern wieder, und beenden Sie Excel.
Zweiten Methode die folgende Fehlermeldung verursacht.
Methode 'saveAs' im COM-Objekt der Klasse '_Workbook' zurückgegebene Fehlercode 0x800A03EC (), das heißt: Sie können nicht speichern Sie diese Arbeitsmappe mit dem gleichen Namen wie eine andere geöffnete Arbeitsmappe oder add-in. Wählen Sie einen anderen Namen ein, oder schließen Sie die anderen Arbeitsmappe oder ein add-in, bevor Sie Sie speichern.
Ist es möglich, zu erstellen und speichern Sie mehrere Excel-Arbeitsblätter in einer Excel-Arbeitsmappe in X++?
- Betrachten Sie zeigen Ihre code. Welche version von AX und Excel?
- Vielen Dank für beide Antworten. Vergaß zu erwähnen, ich arbeite mit AX 2009 Excel 2010 auf Windows Server 2008 Standard 32-bit.
- War gefesselt von der Arbeit mit anderen Artikel wie dieser ist eher ein Informations-Stück, aber ich Suche schon @ einige der code in der SysDataExcelCOM Klasse verwendet, durch das Daten-Import/Export für einige Hinweise. Ich war in der Lage, programmgesteuert löschen Sie die standard - "Blatt 1, Blatt2, Blatt 3" Arbeitsblätter aus meiner Excel-Arbeitsmappe durch das Studium dieser Klasse. Halten Sie auf dem Laufenden... Danke
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nochmals vielen Dank an Jan für das ansprechen
Nach der überprüfung der SysDataExcelCOM Klasse, es ist ein CreateWorkbook Methode schafft die zusätzliche Arbeitsblätter für den Excel-Daten-Definition exportieren. Nach dem erstellen eines neuen ähnlichen Klasse die Methode und auch die Deklaration meiner eigenen festgelegten Namen (#define.ExampleExcelWorksheetName('abcSheet') für die Excel-Arbeitsblätter, ich war dann in der Lage, erstellen Sie die Excel-Arbeitsmappe mit mehreren Arbeitsblättern. Dann speichern (SysExcelWorkbook.saveAs), nachdem alle notwendigen Blätter werden zuerst erstellt, anstatt öffnen Sie die gespeicherte Workboook dann hinzufügen von Arbeitsblättern pro neue Klasse Methode.
Innerhalb der anderen Klasse Methoden, bei denen Daten bestimmt sind, zu schreiben zu den Arbeitsblättern, öffnete ich die Arbeitsmappe erstellt, die von der neuen Methode ähnlich CreateWorkbook (sysExcelWorkbooks.open(yourExcelFile), dann finden Sie zu jedem Arbeitsblatt verwenden (sysExcelWorksheet.itemByName) zum schreiben der Daten auf die spezifischen Arbeitsblatt, speichern Sie dann.
Diesen Weg gehen, die gut für mich gearbeitet.
Dies ist vielleicht keine direkte Antwort auf deine Frage, aber vielleicht geben Sie eine andere Perspektive auf die Erstellung von Excel-Dateien.
Ich eher zu der Verwendung von XML und XSLT erstellen von Excel-Dateien. Sie lassen sich leichter erstellen, was Sie wollen in Excel und speichern Sie dann die Excel-Datei als XML und dann die Sie anwenden können, einige XSLT, liest Daten aus einer anderen XML-Datei und legt Sie in die Excel-Datei, die Sie wollen.
Finden Sie einen Beitrag über dieses Thema auf meinem blog : Mit C#, XML und XSLT erstellen von Excel-Dateien
Dort habe ich eine XML-Datei erstellen, die Elemente enthalten und zu transformieren, dass in einer Excel-Datei.
Überprüfen Sie die Identität des Excel-COM-Dienste. Sehen, was andere haben getan.