Challenge : CSV multi-feuilles

  • Initiateur de la discussion Draven
  • Date de début
D

Draven

Guest
Bonjour bonjour !!

Comme vous vous en doutez, j'ai un pti soucis qui se pose à moi avec un fichier Excel.
Voila, je developpe une appli en PHP qui insere dans une base de données Mysql des données provenant d'un fichier Excel (XLS). Jusqu'ici rien d'extraordinaire je vous l'accord.
Le petit soucis, c'est que techniquement je peux pas acceder aux données du fichier XLS, il faut donc que je passe par des CSV, voir des TXT (toujours rien d'extraordinaire). Or le client qui me fournit les données possède un fichier excel qui se présente sous forme de nombreuses feuilles (une bonne trentaine apparement), et bien entendu il n'est pas tres enclin a exporter ses feuilles au format CSV une par une.

Ma question est donc la suivante (et vous l'aurez vu venir), existe-t-il une astuce ou une petite appli, qui permettrait d'exporter chacune des feuilles au format CSV en une seule fois ???... J'imagine que ce genre de probleme a déja dû se poser à vous, alors par pitié aidez moi sinon j'vais virer de la carafe !!!!! :silly: :eek:

Je vous remercie d'avance de vos réponses avisées :)
 

Jam

XLDnaute Accro
Salut Draven,

Ton problème devrait pouvoir se résoudre en utilisant un prog PHP qui se nomme XLSMagique 'Utilisation d'un fichier MS Excel avec le langage PHP (import, export SQL sont possibles...)' (ndla).

L'adresse http://www.odbcphp.fr.st/

Bon courage

PS.: Si cela ne te permet pas de résoudre ton problème, tient nous au courant et nous verrons à te mettre à dispo une ch'tite marco qui va bien ;)
 
D

Draven

Guest
merci bcp pour ta réponse Jam !!

c'est vraiment sympa ;)... je vais tester le lien que tu m'as donné, par contre je suis un peu scéptique car je ne suis pas totalement libre sur la machine hebergent l'appli php... enfin je croise les doigts et je vous tiens au courant!!

merci encore !!
 
D

Draven

Guest
Hop et voila je viens de jeter un oeil à XLS magique :lol:

Malheureusement, et comme son nom ne l'indique pas, il permet de recuperer des données provenant d'un fichier CSV mais pas d'un XLS (ou alors j'ai rien compris à l'utilisation lol)..

Donc si vous avez une petite macro sous le coude, ou une autre astuce je suis preneur ;)

merci !!
 

Jam

XLDnaute Accro
Salut Draven,

La macro ci-après (à coller dans un module de ton fichier) copiera dans un fichier CSV unique (délimité par des ';') les plages de chaque feuille.
Attention: je considère qu'il n'y a pas d'entête et que toutes les plages commencent en A1 et ne comportent pas de lignes vides).

Code:
'D'après une source de L. Longre

Sub test()
Dim UsedRange As Range
Dim NbCols As Integer, NbLignes As Long
Dim Stat As Integer, Incr As Integer
Dim i As Integer, j As Integer
Dim x As Integer
Dim Progr As Integer

Open 'c:\\Export.csv' For Output As #1

For x = 1 To ThisWorkbook.Sheets.Count
    With Worksheets(x)
        .Select
        .Range('A1').CurrentRegion.Select
    End With
    Set UsedRange = Worksheets(x).UsedRange
    NbCols = UsedRange.Columns.Count - 1
    NbLignes = UsedRange.Rows.Count
    Stat = NbLignes / 40
    Incr = Stat
    For i = 1 To NbLignes
        If i = Stat Then
            Stat = Stat + Incr
            Progr = Progr + 1
            'Application.StatusBar = 'Exportation ' & String(Progr, '.')
        End If
        For j = 1 To NbCols
            Print #1, CStr(UsedRange(i, j)) & ';';
        Next j
        Print #1, CStr(UsedRange(i, j))
    Next i
Next x
Close 1
msgbox 'Exportation terminée.', vbokonly
End Sub

Pour lancer le code, clic n'importe où dans la Sub et appuie sur F5.

Tiens moi au courant si cela a marché.
Le fichier CSV s'appelle Export.CSV et se trouve à la racine de C:/

Bon courage
 

Discussions similaires

Réponses
2
Affichages
424

Statistiques des forums

Discussions
312 581
Messages
2 089 919
Membres
104 307
dernier inscrit
Diet