Avatar billede gertnissen Nybegynder
23. august 2001 - 09:31 Der er 28 kommentarer og
2 løsninger

CSV filer / import af tekst filer

Hvad er det helt korrekte format for en kommasperereret fil når den skal importeres i Excel 97.

4 næste ens eksempler på flade filer

1)
blabla,mere tekst,1321343,pludre
2)
blabla;mere tekst;1321343;pludre
3)
\"blabla\",\"mere tekst\",1321343,\"pludre\"
4)
\"blabla\";\"mere tekst\";1321343;\"pludre\"

Ved import (filer,open) åbnes kun 2 og 4 korrekt.
Ved dobbelklik i stifinder åbnes kun 1 og 3 korrekt.
Ved klik i browser og valg af åbn direkte åbnes kun 1 og 3 korrekt.

I alle tilfælde hedder filen test.csv.

Hvordan sikre jeg at filen åbnes korrekt i alle tilfælde ?
Avatar billede NanoQ Nybegynder
23. august 2001 - 09:40 #1
Du kan jo selv bestemme hvad adskilleren skal være. Under import har du mulighed for at angive den der er brugt.

Default for csv er dog ;

Altså dit eksempel 2

NanoQ
Avatar billede janvogt Praktikant
23. august 2001 - 09:43 #2
Jeg vil foreslå at du altid åbner filerne i Excel, og så tilretter dine tekstfiler, så de altid passer.

Vi kunne også lave en makro, som direkte fra et ark henter tallene over. Men uanset hvad, vil det være bedst altid at få tekstfilen i samme format.
Avatar billede NanoQ Nybegynder
23. august 2001 - 09:45 #3
Men prøv at læse dette:

CSV (Comma-Separated Values) format

  Stores:  Values

  this is generally not a good format, as it has two special cases
  (commas and quotation marks) that are often misimplemented.  it
  can work very well for purely numeric data, which use neither of
  these two characters -- unless your radix separator is the comma,
  as is still common in some parts of Europe.  in these cases,
  software often uses a semicolon (;) instead of the comma (,) to
  separate fields.

  each column is separated by commas.  each row is separated by local
  end-of-line, most commonly ASCII LF (10), ASCII CR (13), or ASCII CRLF
  pair (13,10).

  if a comma is needed, the entire field will be surrounded by
  quotation marks (though there is software that gets even this
  wrong -- the Windows NT 3.51 Event Log export function is one
  example).  some packages enclose any string value (and even numeric
  values) in quotation marks.  to represent a quotation mark within
  a field, double it (don\'t use `\\\"\') and quote the whole field.

  e.g., (examples marked with
  • are unusual)
  •     First,Second,3,\"Fourth, and Second-Last\",Fifth
        \"First\",\"Second\",3,\"Fourth, and Second-Last\",\"Fifth\"
  • \"even\",\"numeric\",\"fields\",\"are\",\"in\",\"quotes\",\"1\",\"2\",\"3\"
  •     \"this field has a \"\"quoted\"\" word\",\"yes, and this one has a comma\"

    Som du kan læse i ovenstående, er csv formatet ikke specielt godt, med mindre det drejer sig om rent nummeriske data. Dog er det ofte eneste alternativ.

    NanoQ
    Avatar billede gertnissen Nybegynder
    23. august 2001 - 09:46 #4
    I Filer menu i Excel 97 findes desværre kun muligheden for at vælge Åbn ikke import. Under Åbn er ikke angivet muligheder for speciele import muligheder - kun hvis filen filen ikke er kendt af Excel får man muligheden for denne særlige import faciliet - eksempelvis hvis man kalder filen test.mgh.

    Det er meningen at denne fil skal ud til en blandet skare af brugere.
    Avatar billede NanoQ Nybegynder
    23. august 2001 - 09:52 #5
    Med \"import\" mener jeg nu også bare åbn.

    Det bedste du kan gøre er jo næsten at konvertere dokumentet til xls inden det ryger ud til brugerne. Så er du jo helt sikker på de får det korrekte format.

    Om det er muligt, afhænger naturligvis af hvordan filen dannes. Men evt. kunne det klares med en makro.

    NanoQ

    Avatar billede janvogt Praktikant
    23. august 2001 - 09:53 #6
    Hvis du bruger samme format i din tekstfil hver gang - altså samme separator-tegn, anførselstegn etc. så kan jeg lave en makro, som overfører korrekt hver gang.

    Send evt. din fil til jan_vogt_hansen@hotmail.com så jeg får lavet makroen rigtigt.
    Avatar billede gertnissen Nybegynder
    23. august 2001 - 10:07 #7
    CSV filen dannes dynamisk ud fra brugernes valgmuligheder i browseren/HTML.
    Ved klik på linket får de den sædvanlige download billeder hvor de kan vælg mellem at gemme på disk eller åbne fra placering.

    En evt. makro skulle derfor distribueres parrelelt - hvilket ikke er nogen god løsning.

    Brugerne er på vidt forskellige bruger-niveauer.
    Avatar billede gertnissen Nybegynder
    23. august 2001 - 10:13 #8
    Findes der evt. et andet neutralt ascii fil format, der kan anvendes ?
    Avatar billede janvogt Praktikant
    23. august 2001 - 10:14 #9
    Kan du ikke gemme disse valgmuligheder som XLS-format?
    Avatar billede janvogt Praktikant
    23. august 2001 - 10:28 #10
    Jeg tror ikke der findes et format til Excel, som er mere velegnet end CSV.
    Avatar billede NanoQ Nybegynder
    23. august 2001 - 10:35 #11
    Du er nødt til at bruge en af de to løsninger. Altså enten direkte xls eller csv. Bruger du csv, så lad ; være seperator og sørg selvfølgelig for at csv formatet er associeret til Excel.

    NanoQ
    Avatar billede gertnissen Nybegynder
    23. august 2001 - 10:44 #12
    Tak for jeres indlæg begge to. Jeg lader dog lige spørgsmålet være åbent resten af dagen inden jeg tildeler point - Jeg mangler jo stadig en løsning, måske den er derude et eller andet sted.
    23. august 2001 - 13:55 #13
    gertnissen>> janvogt nævner makro som en mulighed. Denne makro kunne gemmes som et tilføjelsesprogram (xla-fil), og af den vej tilføjes på hver pc. Det har jeg benyttet ofte. Du kan kontakte mig via www.win-consult.com
    Avatar billede bak Forsker
    23. august 2001 - 14:38 #14
    Disse indstillinger er sat i controlpanel/regionale instillinger under liste seperator. Her kan der vælges om kolonneseperator skal være \";\" eller \",\".
    Standard i min er \";\", men jeg ændrede det til\",\" og så virkede det.
    23. august 2001 - 21:41 #15
    Det er rigtigt \"bak\" det virker.
    Avatar billede gertnissen Nybegynder
    23. august 2001 - 23:37 #16
    hmm... lidt trist - Mit problem er opstået i forbindelse med download af tekst/flad fil fil.csv med data der kunne være komma-separeret, gennem en browser.

    Jeg kan dårligt bedre alle brugerne om enten at downloade en makro eller ændre deres reginale instillinger (det virker ellers).

    Jeg har desværre ikke fået løst mit problem. Jeg afviser jeres svar og prøver at åbne et nyt spørgsmål om
    - Content-Type: text/x-comma-separated-values
    - Content-Disposition: attachment; filename=test.csv
    i HTML kategorien.

    Nye indlæg er dog fortsat velkomne
    Avatar billede lsimony Nybegynder
    24. august 2001 - 04:18 #17
    Hej Gert Nissen

    Har du prøvet funktionen i Excel, der hedder Data/Hent ny data/Ny Web-forspørgsel. Den findes under menuen Data. Måske kunne dette hjælpe.
    Jeg har denne funktion i Excel 2000. Håhber den også findes i Excel 97.

    Hilsen

    Lars Simonÿ
    Avatar billede lsimony Nybegynder
    24. august 2001 - 04:21 #18
    Denne funktion vil kunne indhente data fra nettet og indsætte data i Excels celler fra f.eks. en forspørgelse/søgning på en ASP-side.
    Prøv at ekspermenter lidt med dette.

    Hilsen

    Lars
    Avatar billede lsimony Nybegynder
    24. august 2001 - 04:59 #19
    En 3. løsning kunne være:

    Din hjemmeside havde en Java applet, som gemte dine oplysninger på det lokale drev i det format som du fortrak. Bagefter vil det så være muligt at åbne filen i Excel.

    Hilsen

    Lars
    Avatar billede gertnissen Nybegynder
    24. august 2001 - 14:38 #20
    Problemet er vel at der er modstrid i den content-type jeg angiver og brugernes Regionale Tal indstillinger hvor Listeseperatoren typisk er ; i europa.
    Avatar billede janvogt Praktikant
    24. august 2001 - 14:43 #21
    Ja, det er også det bak konkluderer.
    Avatar billede gertnissen Nybegynder
    25. august 2001 - 09:58 #22
    Men hvordan opnår jeg sammenhæng mellem brugernes reginale Tal indstillinger og content-typen ?

    Jeg mener at kunne forudsætte at alle brugere har samme REgionale Tal indstiling - nemlig ;

    Hvilken content-type modsvarer dette ?
    Avatar billede janvogt Praktikant
    25. august 2001 - 11:46 #23
    Så skal du vel bare sikre dig, at separatortegnet i importfilen er \";\"?
    Avatar billede janvogt Praktikant
    29. august 2001 - 03:35 #24
    Via VBA-kode kan det godt lade sig gøre at læse brugerens regionale indstillinger hvis det kan hjælpe ......
    Avatar billede gertnissen Nybegynder
    30. august 2001 - 13:05 #25
    janvogt, jamen det lyder fint - så mangler jeg bare at finde den korrekte content-type for for mit download dokument.
    30. august 2001 - 13:56 #26
    regionale indstillinger findes via Application.International(xl....) punktumerne findes ved at stille markøren på international og trykke på F1 for hjælp.

    Jeg melder mig ud fra dette spørgsmål.
    Avatar billede janvogt Praktikant
    30. august 2001 - 15:20 #27
    Jeg er ikke helt med. Hvad er det præcist du mener med \"content-type\"?
    Avatar billede gertnissen Nybegynder
    20. september 2001 - 14:56 #28
    Content-type bruges til at angive typen på den fil du downloader via browseren.
    Avatar billede Slettet bruger
    28. januar 2002 - 22:06 #29
    Prøv med:
    <META HTTP-EQUIV="Content-Type" CONTENT ="application/x-msdownload">
    Avatar billede gertnissen Nybegynder
    05. september 2003 - 22:39 #30
    Så er der vel gået rigelig tid for nye indlæg og spørgsmåles lukkes.
    Løsningen var at tilføje den korrekte content-type i starten af den flade fil (csv filen).

    Tak for hjælpen til alle der kom med bidrag.
    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
    Kategori
    IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

    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