Bonjour,
Suite à cette discussion j'ai voulu en avoir le cœur net et faire mes propres expériences.
Considérez moi comme de la vieille école, gaulois réfractaire à MS Office bref j'utilise ce bon vieux OLE
Je suis honteux, cela fait un bail que je n'ai plus utilisé ce genre de technique et je me suis même aperçu que la première chose qui était écrite dans la FAQ pour la manipulation de documents Office était d'utiliser les composants des paquets prévus or ça je ne l'ai pas fait (ni ne veux le faire d'ailleurs).
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 uses ..., win.comserv, win.comobj; var AppExcel: Olevariant; FichierExcel: Olevariant; Doc: Olevariant; aValue: Olevariant; I: Olevariant; J: Integer; S: String; begin Try AppExcel := CreateOleObject('excel.application'); FichierExcel := AppExcel.Workbooks.Open ('D:\Analyse\donneesexpedition2019.xlsx', False, False, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, 0); Doc := AppExcel.Activeworkbook; I := Doc.BuiltInDocumentProperties.Count; Memo1.lines.Add(I.toString + ' Propriétés'); for J := 1 to I do begin try S := EmptyStr; if not VarIsNull(Doc.BuiltInDocumentProperties[J].Name) then begin S := Doc.BuiltInDocumentProperties[J].Name; aValue := Doc.BuiltInDocumentProperties[J].Value; if not VarIsNull(aValue) AND (Not VarIsEmpty(aValue)) then S := S + ' contenu = ' + aValue; end; Memo1.lines.Add(S); except on E: Exception do if (E is EOlEException) or (E is EVariantError) then Memo1.lines.Add(S + ' * Propriété indéfinie *') else Memo1.lines.Add(S + ' ' + E.Message) end; end; FichierExcel.Close(False, EmptyParam, EmptyParam); except on E: Exception do Memo1.lines.Add(E.Message); end; if (not VarIsEmpty(AppExcel)) AND (not VarIsNull(AppExcel)) then AppExcel:= unassigned;Ok, ça fonctionne, sauf, quand je débogue, pour ce qui concerne34 Propriétés
Title contenu =
Subject contenu =
Author contenu =
Keywords
Comments contenu =
Template contenu =
Last author contenu = Serge Girard
Revision number contenu = 1
Application name contenu = LibreOffice/6.2.8.2$Windows_X86_64 LibreOffice_project/f82ddfca21ebc1e222a662a32b25c0c9d20169ee
Last print date * Propriété indéfinie *
Creation date * Propriété indéfinie *
Last save time * Propriété indéfinie *
Total editing time * Propriété indéfinie *
Number of pages * Propriété indéfinie *
Number of words * Propriété indéfinie *
Number of characters * Propriété indéfinie *
Security * Propriété indéfinie *
Category
Format
Manager
Company
Number of bytes * Propriété indéfinie *
Number of lines * Propriété indéfinie *
Number of paragraphs * Propriété indéfinie *
Number of slides * Propriété indéfinie *
Number of notes * Propriété indéfinie *
Number of hidden Slides * Propriété indéfinie *
Number of multimedia clips * Propriété indéfinie *
Hyperlink base
Number of characters (with spaces) * Propriété indéfinie *
Content type
Content status
Language contenu = fr-FR
Document version
les dates, message du débogueur EVariantTypeCastError [impossible de convertir le variant de type (OleStr) en type (Date)]
les doubles, message du débogueur EVariantTypeCastError [impossible de convertir le variant de type (OleStr) en type (Double)]
du coup j'ai un doute !
Partager