Avatar billede hanne-dk Nybegynder
26. august 2010 - 14:15 Der er 10 kommentarer og
1 løsning

XML dokument skal laves til komma separeret cvs fil - HVORDAN ?

Hejsa

Forslag ønskes på LETTESTE metode :-)

Jeg har en xml fil som jeg skal have lavet om til en komma separeret .cvs fil istedet.

Hvordan kan jeg lettest gøre det?
Er det muligt at lave et lille program eller en slags marcro ting som kan gøre det med 1 klik?

Lige nu henter jeg filen ind i excel og eksporterer det til en semmikolon cvs fil og skal så ind og lave en "erstat ; med ," kommando, og det er lidt bøvlet :-(
Avatar billede supertekst Ekspert
26. august 2010 - 14:27 #1
Prøv at indspil en makro.

Det er vel en tilbagevendende begivenhed.
Avatar billede j3ppah Novice
26. august 2010 - 15:01 #2
skriv noget kode der går ind og splitter på " " og erstatter med ,... Burde være ganske simpelt.

kan du give et eksempel på hvordan det der står i dokumentet ser ud, og hvordan du gerne vil have det til at se ud ?
Avatar billede j3ppah Novice
26. august 2010 - 15:02 #3
og ja du kan selvfølgelig med en makro, i vb.
Avatar billede hanne-dk Nybegynder
26. august 2010 - 16:16 #4
ok - marcro - vil en eller anden pleeease lave en 1-2-3 på hvordan den skal laves når jeg har en fil der hedder test.xml som skal laves til test2.cvs hvor den har gemt filen med , istedet for ;

:-)
Avatar billede supertekst Ekspert
26. august 2010 - 16:22 #5
Er på vej med en makro..
Avatar billede supertekst Ekspert
26. august 2010 - 16:39 #6
1) VBA-koden herunder kopieres og indsættes under ark1 (Højreklik / Vis programkode)

2) Juster sti og filnavne - gem og luk

3) Koden køres - f.eks: Alt+F8 / marker Makronavnet (fraXMLtilCSV) / Afspil - eller kan forbindes med en knap.


Const xmlFilNavn = "C:\Documents and Settings\pb.KHNBPB\Skrivebord\XML_Csv\Kostpris.xml"  'JUSTERES

Const csvFilNavn = "C:\Documents and Settings\pb.KHNBPB\Skrivebord\XML_Csv\kommaFil.csv"  'JUSTERES

Dim antalRæk As Long, antalKol As Long
Public Sub fraXMLtilCSV()
    sletGlIndhold
    indlæsXML
    hentDimensioner
    opbygCsvFil
   
    MsgBox "Konvertering udført", vbOKOnly
End Sub
Private Sub sletGlIndhold()
    ActiveWorkbook.Sheets(1).Activate
    Cells.Select
    Selection.Delete Shift:=xlUp
End Sub
Private Sub indlæsXML()
    ActiveWorkbook.XmlImport URL:=xmlFilNavn, _
        ImportMap:=Nothing, Overwrite:=True, Destination:=Range("$A$1")
End Sub
Private Sub hentDimensioner()
    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
    antalKol = ActiveCell.SpecialCells(xlLastCell).Column
End Sub
Private Sub opbygCsvFil()
Dim ræk As Long, kol As Long, cc, linje
    Open csvFilNavn For Output As #1

    For ræk = 1 To antalRæk
        linje = ""
        For kol = 1 To antalKol
            If kol < antalKol Then
                linje = linje + CStr(Cells(ræk, kol)) + ","
            Else
                linje = linje + CStr(Cells(ræk, kol))
                Print #1, linje
            End If
        Next kol
    Next ræk
    Close #1
End Sub
Avatar billede supertekst Ekspert
13. september 2010 - 09:02 #7
Noget nyt??
Avatar billede hanne-dk Nybegynder
05. oktober 2010 - 09:31 #8
hmmm jeg må hellere se mig om efter en alternativ løsning, da det vil være for omstændigt at kode hver fil, da der kommer ny fil 2 gange dagligt :-(
Men tak for hjælpen alligevel.
Avatar billede j3ppah Novice
05. oktober 2010 - 09:39 #9
Hanne, du kan jo skrive et program der gør det i c - c#, så det eneste du behøver er at smide filen ind i en mappe hvor der også ligger en c eller c# console app, der gør det for dig når du dobbelklikker på den...

På denne måde behøver du kun smide filen ind i mappen, og så klikke på filen, du kan evt. få den til at tage alle filerne i mappen, ud over c applikationen selv, så du kan gøre det på flere dokumenter sammetidig.

Det eneste der skal bruge er en streamreader og en streamwriter, muligvis en. Der er en replacer i c#, kan ikke huske om den er i c (tror jeg ikke)...

Så opgaven burde helt sikkert at kunne løses.

Hvis jeg da har forstået opgaven korrekt.
Avatar billede j3ppah Novice
05. oktober 2010 - 09:40 #10
Du kan evt prøve at skive hvordan et udsnit af din xml ser ud... så må vi lige se om jeg får tid til at give det et forsøg.
Avatar billede hanne-dk Nybegynder
05. oktober 2010 - 09:45 #11
Hejsa
Jeg prøver lige om det er muligt at få lavet et lille Delphi program som kan udføre rutinen for mig :-)
http://www.eksperten.dk/spm/920486
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester