[Résolu][Java] enregistrer un fichier en xlsx

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
tomatoes
Membre OOrganisé
Membre OOrganisé
Messages : 87
Inscription : 31 mai 2010 11:58

[Résolu][Java] enregistrer un fichier en xlsx

Message par tomatoes »

Bonjour

Nous génèrons des fichiers calc avec l'API Java mais nous voulons que ce soit ouvrable et enregistrable dans Excel car nos utilisateurs veulent retraiter ensuite dans ce logiciel et pas dans Libre Office.

Quand nous sauvons en standard en .ods et que nous ouvrons avec Excel c'est ok par contre quand on fait "enregistrer" ou "enregistrer sous" nous avons le message d'erreur: toto.ods peut contenir des fonctionnalités non comptatibles avec ce format, voulez vous continuer et enregistrer dans ce format.

J'ai essayé donc d'enregistrer au format .xlsx par l'Api j'utilise le "FilterName" avec le format "Calc MS Excel 2007 XML" mais quand cela ouvre dans Excel j'ai le message "Désolé nous avons trouvé un problème dans le contenu de toto.xlsx mais nous pouvons essayer de récupérer le maximum de contenu. Si la source de ce classeur est fiable cliquez sur oui. Si on réponds oui il y a juste les datas mais pas la mise en forme (tableaux, gras...)

voici le code de l'enregistrement

Code : Tout sélectionner


File destFile = new java.io.File( adresseEtNomMonFichier.xlsx);

StringBuffer _sbUrl = new StringBuffer( "file:///" );
_sbUrl.append( destFile.getCanonicalPath().replace( '\\', '/' ) );

xstorable = (XStorable) UnoRuntime.queryInterface( XStorable.class, _xcomponent );

PropertyValue[] propertyvalue = new PropertyValue[2];

propertyvalue[0] = new PropertyValue();
propertyvalue[0].Name = "Overwrite";
propertyvalue[0].Value = new Boolean( true );

propertyvalue[1] = new PropertyValue();
propertyvalue[1].Name = "FilterName";
propertyvalue[1].Value = "Calc MS Excel 2007 XML";

xstorable.storeAsURL( _sbUrl.toString(), propertyvalue );
En vous remerciant par avance pour votre aide

Bonne journée
Dernière modification par tomatoes le 12 déc. 2024 12:50, modifié 3 fois.
Libre office 24.2.6 sous Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25965
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Java] enregistrer un fichier en xlsx

Message par Dude »

Salut,

Sans fournir toto.ods et .xlsx, comment penses-tu être aidé ?
tomatoes
Membre OOrganisé
Membre OOrganisé
Messages : 87
Inscription : 31 mai 2010 11:58

Re: [Java] enregistrer un fichier en xlsx

Message par tomatoes »

Bonjour

Voici le fichier.ods par contre le xlsx est trop volumineux (800 ko) pourtant il y a seulement 1 onglet et une dizaine de cellule voici un lien one drive

https://icap84-my.sharepoint.com/:x:/g/personal/d_maurel_isc84_org/EUF3L00GJehLkaEp1Ae8dBEBymZ8evb2DASqRfgBuZQy-Q?e=FCWKb5

merci

Bonne après midi
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre office 24.2.6 sous Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25965
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Java] enregistrer un fichier en xlsx

Message par Dude »

tomatoes a écrit : 11 déc. 2024 12:47 le xlsx est trop volumineux (800 ko) pourtant il y a seulement 1 onglet et une dizaine de cellule
A priori, le filtre d'export n'est pas (encore) très au point. :mrgreen:

En passant par MS-Excel, on est encore à 177 Ko soit encore 10 fois le poids de l'ODS.
Le OO-XML, c'est vraiment de la daube.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
tomatoes
Membre OOrganisé
Membre OOrganisé
Messages : 87
Inscription : 31 mai 2010 11:58

Re: [Java] enregistrer un fichier en xlsx

Message par tomatoes »

oui dude je pense que les conversions sont pas au point après cela doit pas être évident pour les développeurs de maintenir cela.

Le problème vient de là après Excel ne doit pas tout comprendre
Libre office 24.2.6 sous Windows 10
Avatar de l’utilisateur
OOo - Ekel
SuppOOrter
SuppOOrter
Messages : 1313
Inscription : 10 nov. 2006 15:04
Localisation : F-Oise

Re: [Java] enregistrer un fichier en xlsx

Message par OOo - Ekel »

Bonjour,

Je me pose une question et la partage donc : pour ce filtre de "2007" ?

N'y a-t-il pas plus récent pour ce format xlsx ?

Oups, cela en fait deux.

Cordialement.
Ekel

KUbuntu Noble Numbat (24.04) : LibreOffice 24.8.0.3 Officielle
AMD Ryzen 5 5600G
AMD Radeon RX 6650 XT
22" + 22"
16 Go
____________________
Pour les règles du jeu.
Pour marquer Résolu.
Pour joindre un fichier.
tomatoes
Membre OOrganisé
Membre OOrganisé
Messages : 87
Inscription : 31 mai 2010 11:58

Re: [Java] enregistrer un fichier en xlsx

Message par tomatoes »

la liste pour le libre office 24 est ici

https://help.libreoffice.org/latest/he/ ... lters.html

j'ai également essayé le filtre "Calc Office Open XML" j'ai le même soucis

bonne journée
Libre office 24.2.6 sous Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25965
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Java] enregistrer un fichier en xlsx

Message par Dude »

tomatoes a écrit : 05 déc. 2024 13:25nous avons le message d'erreur: toto.ods peut contenir des fonctionnalités non comptatibles avec ce format, voulez vous continuer et enregistrer dans ce format.
Le document que tu as joins ne s'appelle pas toto.ods
Si je l'enregistre en xlsx, le document généré n'a pas ce message d'erreur lorsque je l'ouvre sous MS-Excel 365 v.18.2306.
En revanche si je lance ton lien SharePoint, il n'y a pas non plus cette erreur mais une corruption :

.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
tomatoes
Membre OOrganisé
Membre OOrganisé
Messages : 87
Inscription : 31 mai 2010 11:58

Re: [Java] enregistrer un fichier en xlsx

Message par tomatoes »

oui pardon je les ai appelé fichier.ods et fichier.xlsx

je suis en Excel M 365 version 2411 build 18227.20152

quand j'enregistre en xlsx j'ai cette erreur erreur1.JPG
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre office 24.2.6 sous Windows 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25965
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Java] enregistrer un fichier en xlsx

Message par Dude »

Sans doute un problème de ta version de MS-Office.
J'ai ouvert fichier.xlsx depuis mon espace OneDrive sans rencontrer d'erreur.
https://1drv.ms/x/c/760aa2d604a7da83/EUiQXbHbPXJEu5_llS40CIMBWxydRndzc5RhoNCkbON7Ng?e=3kd75x

.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
tomatoes
Membre OOrganisé
Membre OOrganisé
Messages : 87
Inscription : 31 mai 2010 11:58

Re: [Java] enregistrer un fichier en xlsx

Message par tomatoes »

ok en effet un de mes utilisateurs que j'ai mis en test n'a pas de message également

je cloture

Bonne après midi
Libre office 24.2.6 sous Windows 10