[Résolu][Calc] Import d'un fichier CSV en ligne

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 !
spidle33
Fraîchement OOthentifié
Messages : 5
Inscription : 19 juil. 2010 09:44

[Résolu][Calc] Import d'un fichier CSV en ligne

Message par spidle33 »

Bonjour,

Je galère depuis de nombreux jours afin de trouver une solution à mon problème :

Contexte :
> J'ai un fichier CSV généré en ligne (via une page PHP, mais le format final est un fichier texte au format CSV).
> J'ai besoin d'importer ce fichier CSV dans une feuille de mon fichier CALC (première cellule renseignée en A2).
> Cet import doit pouvoir se faire à n'importe quel moment via un bouton
> Je précise que ma macro doit pouvoir fonctionner sur un MAC (pas d'utilisation d'internet explorer, solution que j'ai vu quelque part durant mes recherches).

Problème principal :
> je n'arrive pas à lire dans une macro en OOO Basic le contenu d'un fichier texte en ligne. Ca marche pour un fichier sur mon poste, mais pas sur un fichier distant (via SimpleFileAccess)
> J'ai donc cherché à faire d'abord une copie de mon CSV sur l'ordinateur, pour ensuite l'importer, mais je rencontre le même problème, les fonctions de copies ne fonctionnent pas pour un fichier distant.

Bref je suis bloqué et j'aurais besoin de votre aide.

Merci d'avance,

- spidle33 -
Dernière modification par spidle33 le 19 juil. 2010 18:08, modifié 1 fois.
OpenOffice 3.2 sous Windows XP
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26195
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Import d'un fichier CSV en ligne

Message par Dude »

Salut,
spidle33 a écrit :je n'arrive pas à lire dans une macro en OOO Basic le contenu d'un fichier texte en ligne. Ca marche pour un fichier sur mon poste, mais pas sur un fichier distant (via SimpleFileAccess)
Problème sur la ligne 471 de ton code. :roll:

A part ça, si tu développes en PHP. Rien ne t'empêche de générer directement ton fichier au format ODS. Il existe des bibliothèques pour ça : http://user.services.openoffice.org/fr/ ... 26&t=13438

:idea:
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
spidle33
Fraîchement OOthentifié
Messages : 5
Inscription : 19 juil. 2010 09:44

Re: [Calc] Import d'un fichier CSV en ligne

Message par spidle33 »

Bonjour,

Je peux poster mon code pour faire plaisir, mais c'est le même que partout. Je n'ai rien codé de plus puisque ça ne marche pas dans mon cas.

1. Lecture fichier

Code : Tout sélectionner

Sub LireFichierTexte
  Dim Ligne As String
  Dim Fichier As String

  Fichier = "C:\test.csv"  ' Ne marche pas si remplacé par http://www.exemple.com/test.csv
  
  Open Fichier For Input As #1

    '--- Boucle sur les lignes du fichier
    Do While Not EOF(1)
      Line Input #1, Ligne
      Msgbox Ligne
    Loop
    
  Close #1
End Sub
2. Copie de fichier (mais pas distant...)

Code : Tout sélectionner

Sub CopierFichier
	Dim Source As String , Destination As String
	Dim oSFA As Object
	
	Source = ConvertToUrl("C:\test.csv") ' Ne marche pas si remplacé par http://www.exemple.com/test.csv
	Destination = ConvertToUrl("C:\test2.csv") 
	
	oSFA = createUNOService ("com.sun.star.ucb.SimpleFileAccess") 
	oSFA.copy(Source, Destination)
End Sub
Ces codes ne marche pas pour un fichier distant.
Dude a écrit :A part ça, si tu développes en PHP. Rien ne t'empêche de générer directement ton fichier au format ODS. Il existe des bibliothèques pour ça : http://user.services.openoffice.org/fr/ ... 26&t=13438
En fait ce n'est pas possible, car le fichier CALC est utilisé par la personne régulièrement. Le fichier PHP ne fait office que de source de données.

Encore merci pour ton aide.

- spidle33 -
Dernière modification par spidle33 le 19 juil. 2010 15:19, modifié 1 fois.
OpenOffice 3.2 sous Windows XP
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26195
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Import d'un fichier CSV en ligne

Message par Dude »

Euh, je ne vois pas d'URL distante dans ton code. Tu ne fais que de la copie en local.

Ce code fonctionne pour moi.

Code : Tout sélectionner

Sub CopieDepuisFTP
  oSFA = createUNOService ("com.sun.star.ucb.SimpleFileAccess")
  sSourceUrl =    "ftp://site_ftp.fr/fichier.csv"
  sDestUrl = ConvertToUrl("C:\fichier_recupere.csv")
  oSFA.copy(sSourceUrl, sDestUrl)
End Sub 
Bien sûr, le FTP est bidon.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
spidle33
Fraîchement OOthentifié
Messages : 5
Inscription : 19 juil. 2010 09:44

Re: [Calc] Import d'un fichier CSV en ligne

Message par spidle33 »

Effectivement, je n'ai pas précisé le protocole.
Et est-ce qu'une copie en protocole http (vu que j'execute du PHP) fonctionne pour toi ?
OpenOffice 3.2 sous Windows XP
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26195
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Import d'un fichier CSV en ligne

Message par Dude »

spidle33 a écrit :Et est-ce qu'une copie en protocole http (vu que j'execute du PHP) fonctionne pour toi ?
Je ne vois pas le rapport entre PHP et le protocole HTTP. Mais oui, le code fonctionne également. Si je remplace :

Code : Tout sélectionner

sSourceUrl =    "http://oooforum.free.fr/license.txt"
Je récupère bien la licence GNU GPL sur mon disque.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
spidle33
Fraîchement OOthentifié
Messages : 5
Inscription : 19 juil. 2010 09:44

Re: [Calc] Import d'un fichier CSV en ligne

Message par spidle33 »

Ta réponse m'a bien surpris.
Du coup j'ai modifié mon script PHP de place, et cette fois-ci ça a fonctionné.
Je me demande si ce n'est pas lié au htaccess du site ou quelque chose du genre.

Je n'ai pas une solution précise à mon problème, mais du coup, ça devient possible de poursuivre !!!

Merci, à défaut de solution, de m'avoir montré que le problème ne venait pas du fait que le fichier soit en ligne ;-)

- spidle33 -
OpenOffice 3.2 sous Windows XP
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26195
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] Import d'un fichier CSV en ligne

Message par Dude »

spidle33 a écrit :Je me demande si ce n'est pas lié au htaccess du site ou quelque chose du genre.
Comprendre ce qu'est un .htaccess sur un serveur Apache.
spidle33 a écrit :Merci, à défaut de solution
Hum, d'où l'intérêt de passer par FTP qui est un protocole dédié au transfert de fichier. Passer par HTTP, c'est comme vouloir visser avec un marteau.
Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
spidle33
Fraîchement OOthentifié
Messages : 5
Inscription : 19 juil. 2010 09:44

Re: [Résolu][Calc] Import d'un fichier CSV en ligne

Message par spidle33 »

Salut Dude,

Merci de ton commentaire, mais pour ma problématique fonctionnelle, le HTTP est de manière certaine le meilleur protocole ;)
OpenOffice 3.2 sous Windows XP