Ouvrir un fichier excel sans aucune dll office

Soyez le premier à donner votre avis sur cette source.

Vue 9 920 fois - Téléchargée 881 fois

Description

Comme son nom l'indique, le but de ce programme est de pouvoir regarder dans le ventre des fichiers "Microsoft Office" sans pour autant avoir de dll office sur le poste (donc pas de licence)

La première partie traite de l'encapsulation des fichiers dans un format nommé "Compound File" par MS.
La seconde traite de la mise en forme des données d'excel dans le fichier désencapsulé.

Le projet est contitué d'une DLL contenant toutes les classes nécéssaires
ainsi qu'un projet Exe pour tester.

Source / Exemple :


'à regarder dans le zip

'les doccuments cécéssaires (dont il est fait référence dans le code)
[MS-CFB].pdf
[MS-XLS].pdf

Conclusion :


L'intérêt n'est pas forcement grand si ce n'est de mieux comprendre la lourdeur des fichiers office...

Le but final est surtout de faire un convertisseur automatique Excel->Base de donnée sans nécessité d'avoir de licence Office sur le poste.

Autre intérêt (mais officieux celui-ci) passer de longues heures à se creuser la tête en réinventant la roue pour la Nième fois. ^_^

Fonctionne pas mal ^_^
Le temps de chargement dépends de la taille du fichier !!!
il n'y a pas de bug a ma connaissance

Pas encore terminé (loin de là ^^)

/!\ ne peut charger que les worksheets et non pas les graphs et tout y quanty !!!
c'est déjà assez galère comme cela ^_^

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
Je pensais à une fonction VB6 dont l'utilité est seulement pour assurer la compatibilité avec de vieux trucs, mais pas optimisé du tout, mais pour trouver laquelle c'est pas évident : il faut mettre des timers partout (je ne sais pas si on peut profiler le timing pour l'ensemble des fonctions comme en DotNet).
cs_EBArtSoft
Messages postés
4531
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
3 -
Supeeeeeeeeeer ! Continues.

Je ne saurais trop te conseiller d'oublier les optimisations pour le moment. Car c'est un truc a passer des nuits blanches pour pas grand chose. Concentres toi plutôt sur l'essentiel. Une fois ton programme "full featured" tu pourras commencer les optimisations.

Et je te confirme que tu peux faire ça en vb6 et sans multi-thread.

Courage.
nasserovski
Messages postés
5
Date d'inscription
jeudi 11 mai 2006
Statut
Membre
Dernière intervention
11 avril 2011
-
N'oubliez pas le contrôle utilisé recevant les valeurs. Dans notre cas c'est le flex grid. Peut etre que le datagrid de .net est plus rapide. le grid utilisé dans Excel est pratiquement inconnu. Pourquoi ne pas essayer un Spreadsheet du Web Components (OWC).
Flocreate
Messages postés
307
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
27 mai 2012
3 -
nasserovski merci de ta suggestion. Cependant, même si il est vrai que l'affichage est lent dans une HFlexgrid, son but dans mon code est uniquement de tester la dll. Sa rapidité n'est donc pas importante.
Lorsque je parle de lenteur c'est uniquement celle de la dll qui m'interesse.
Avec le fichier que je donne en exemple, c'est invisible, mais sur un tres gros fichier le chargement est concidérablement plus long. Et encore, je ne charge pas toutes les informations données par le fichier. Telles que les hauteurs de ligne, largeur de colone, type de bordure, couleur de fond, de font et de bordure des cellules. Le font, le format, les formulas ...

amicalement,
Flocreate
Messages postés
307
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
27 mai 2012
3 -
bon ben "gros" update.
Je viens également d'implémenté le "MergeCells" mais je me trouve bien bête a ne pas savoir comment joindre des cellules dans un msHflexgrid.
Si une personne pouvait m'indiquer comment faire. comme cela j'update cette fonction également.
Commenter la réponse de cs_EBArtSoft

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.