Bonjour tout le monde,
je me casse la tête depuis plusieurs jours sur l'utilisation de l'assemblage .net OPENXML sur Windev 24 pour supprimer l'automation (source de plusieurs problèmes...).
J'essaie pour le moment de créer une fichier Excel vide comme indiqué dans la doc ici : https://docs.microsoft.com/en-us/off...ng-a-file-name en me basant sur le code c# suivant :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 public static void CreateSpreadsheetWorkbook(string filepath) { // Create a spreadsheet document by supplying the filepath. // By default, AutoSave = true, Editable = true, and Type = xlsx. SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument. Create(filepath, SpreadsheetDocumentType.Workbook); // Add a WorkbookPart to the document. WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart(); workbookpart.Workbook = new Workbook(); // Add a WorksheetPart to the WorkbookPart. WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>(); worksheetPart.Worksheet = new Worksheet(new SheetData()); // Add Sheets to the Workbook. Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook. AppendChild<Sheets>(new Sheets()); // Append a new worksheet and associate it with the workbook. Sheet sheet = new Sheet() { Id = spreadsheetDocument.WorkbookPart. GetIdOfPart(worksheetPart), SheetId = 1, Name = "mySheet" }; sheets.Append(sheet); workbookpart.Workbook.Save(); // Close the document. spreadsheetDocument.Close(); }
Je suis bloqué sur le portage de la ligne " WorksheetPart worksheetPart = workbookpart.AddNewPart<WorksheetPart>();"
Mon code Windev actuel est celui ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 QUAND EXCEPTION DANS // https://docs.microsoft.com/en-us/office/open-xml/how-to-create-a-spreadsheet-document-by-providing-a-file-name _SpreadsheetDocument est un SpreadsheetDocument dynamique _SpreadsheetDocument <- SpreadsheetDocument.Create("test.xlsx", SpreadsheetDocumentType.Workbook); _WorkbookPart est un WorkbookPart dynamique _WorkbookPart <- _SpreadsheetDocument.AddWorkbookPart(); _WorkbookPart.Workbook = new Workbook(); _WorksheetPart est un WorksheetPart dynamique _WorksheetPart <- _WorkbookPart."AddNewPart<WorksheetPart>"(); // ICI se trouve l'erreur _WorkbookPart.Workbook.Save(_WorkbookPart); // Close the document. _SpreadsheetDocument.Close(); FAIRE Trace(ExceptionInfo(errComplet)) FIN
A l'exécution de la ligne _WorksheetPart <- _WorkbookPart."AddNewPart<WorksheetPart>"(); j'ai le message d'erreur suivant :
J'épluche la doc Windev https://doc.pcsoft.fr/fr-FR/?2012002, je me dis qu'il y a un problème de syntaxe quelque part, mais là je ne trouve pas.....Appel WL :
Traitement de 'Fin d'initialisation de TEST' (TEST), ligne 15
Que s'est-il passé ?
L'invocation de la méthode <AddNewPart<DocumentFormat.OpenXml.Packaging.WorksheetPart>()> du type <WorkbookPart> a échoué
L'invocation de la méthode <AddNewPart<DocumentFormat.OpenXml.Packaging.WorksheetPart>()> du type <WorkbookPart> a échoué
Code erreur : 200002
Niveau : erreur fatale
Dump de l'erreur du module 'wd240net4.dll' (24.0.73.0).
Identifiant des informations détaillées (.err) : 200002
Informations supplémentaires :
EIT_PILEWL :
Fin d'initialisation de TEST (TEST), ligne 15
EIT_DATEHEURE : 21/03/2021 21:22:06
EIT_TYPE_WDFILE : <2>
EIT_IDCODE : <34>
Avez vous une idée svp ? Est-ce que quelqu'un d'entre vous à déjà utiliser la librairie OPENXML ?
merci
:)
Partager