Excel CSV - Antall celleformat

stemmer
76

Jeg produsere en rapport som en CSV-fil. Når jeg prøver å åpne filen i Excel, gjør det en antagelse om datatypen basert på innholdet i cellen, og formaterer den deretter.

For eksempel, hvis CSV-filen inneholder

...,005,...

Deretter Excel viser det som 5. Er det en måte å overstyre dette og vise 005?

Jeg foretrekker å gjøre noe for å selve filen, slik at brukeren kan bare dobbeltklikke på CSV-fil for å åpne den.

Jeg bruker Excel 2003.

Publisert på 26/09/2008 klokken 00:07
kilden bruker
På andre språk...                            


16 svar

stemmer
2

Du kan ganske enkelt formatere utvalg som tekst.

Også her er en fin artikkel om tallformater og hvordan du kan programmere dem.

Svarte 26/09/2008 kl. 00:10
kilden bruker

stemmer
1

Jeg tror at når du importerer filen kan du velge kolonnetypen. Gjør det tekst i stedet for tall. Jeg har ikke en kopi foran meg i øyeblikket for å sjekke om.

Svarte 26/09/2008 kl. 00:10
kilden bruker

stemmer
0

Når du åpner en CSV, får du teksten import veiviseren. På det siste trinnet i veiviseren, bør du være i stand til å importere den spesifikke kolonnen som tekst, og dermed beholder '00' prefiks. Etter det kan du formatere cellen noen måte som du ønsker.

Jeg prøvde med med Excel 2007, og det så ut til å fungere.

Svarte 26/09/2008 kl. 00:12
kilden bruker

stemmer
27

Ikke bruk CSV, bruker SYLK.
http://en.wikipedia.org/wiki/SYmbolic_LinK_(SYLK)

Det gir mye mer kontroll over formatering, og Excel vil ikke prøve å gjette hva slags et felt ved å undersøke innholdet. Det ser litt komplisert, men du kan komme unna med å bruke en svært liten del.

Svarte 26/09/2008 kl. 00:49
kilden bruker

stemmer
2

Egentlig jeg oppdaget at minst starter med Office 2003, kan du lagre et Excel-regneark som en XML-fil. Dermed kan jeg lage en XML-fil, og når jeg dobbeltklikker på det, vil det bli åpnet i Excel. Det gir samme grad av kontroll som SYLK, men XML-syntaks er mer intuitiv.

Svarte 26/09/2008 kl. 02:29
kilden bruker

stemmer
108

Det er ikke en enkel måte å kontrollere formater Excel gjelder når du åpner en CSV-fil. Men oppført nedenfor, er tre tilnærminger som kan hjelpe.

Min preferanse er det første alternativet.

Alternativ 1 - Endre dataene i filen

Du kan endre data i CSV-filen som følger ... =”005” , ... Dette vil bli vist i Excel som ..., 005 , ...

Excel har holdt dataene som en formel, men kopierer kolonnen og bruke lim spesielle verdier vil bli kvitt den formelen, men beholde formater

Alternativ 2 - Formater dataene

Hvis det er bare et problem format og alle dine data i denne kolonnen har en tre siffer. Deretter åpner dataene i Excel og deretter formatere kolonne inneholdende de data som med dette definert format 000

Alternativ 3 - Endre filtypen til .DIF (Data Interchange Format)

Endre filtypen og bruke filen importveiviseren til å kontrollere formater. Filer med en .DIF forlengelse automatisk skal åpnes av Excel når dobbel klikket på.

Steg for steg:

  • Endre filtypen fra CSV til .DIF
  • Dobbeltklikk på filen for å åpne den i Excel.
  • The 'File Import Wizard' vil bli lansert.
  • Sett 'Filtype' til 'Avgrenset' og klikk på 'Neste' -knappen.
  • Under Skilletegn, kryss av 'Komma' og klikk på 'Neste' -knappen.
  • Klikk på hver kolonne av dataene som vises, og velg en kolonne dataformat ". Kolonnen med verdien '005' må være formatert som 'Tekst'.
  • Klikk på finish knappen, vil filen åpnes av Excel med formater som du har angitt.
Svarte 26/09/2008 kl. 19:23
kilden bruker

stemmer
0

Vel, excel dukker aldri opp veiviseren for CSV-filer. Hvis du endre navnet til .txt, vil du se veiviseren når du gjør et Fil> Åpne i Excel neste gang.

Svarte 30/11/2009 kl. 17:14
kilden bruker

stemmer
1

Belastnings csv inn i OLEDB og tvinge alle utledede datatyper på snor

Jeg stilte det samme spørsmålet, og deretter besvart det med kode.

utgangspunktet når csv filen er lastet OLEDB sjåføren gjør antagelser, kan du fortelle den hva forutsetninger for å gjøre.

Koden min tvinger alle datatyper på snor skjønt ... det veldig enkelt å endre skjemaet. for mitt formål jeg brukte en XSLT å få Ti slik jeg ville - men jeg parsing et bredt utvalg av filer.

Svarte 22/12/2009 kl. 12:05
kilden bruker

stemmer
0

Sett et enkelt sitat før feltet. Excel vil behandle det som tekst, selv om det ser ut som et tall.

...,`005,...

EDIT: Dette er feil. Apostrof trikset fungerer bare når du skriver inn data direkte inn i Excel. Når du bruker den i en CSV-fil, vises apostrof i feltet, som du ikke ønsker.

http://support.microsoft.com/kb/214233

Svarte 15/07/2010 kl. 17:32
kilden bruker

stemmer
1

Jeg vet dette er en gammel spørsmålet, men jeg har en løsning som ikke er oppført her.

Når du produserer csv legge til et mellomrom etter komma, men før verdi f.eks , 005,.

Dette arbeidet for å hindre automatisk dato formatering i Excel 2007 uansett.

Svarte 04/01/2011 kl. 17:28
kilden bruker

stemmer
1

Tekstimportveiviseren metoden fungerer ikke når CSV-filen du importerer har linjeskift i en celle. Denne metoden håndterer denne situasjonen (i det minste med tabulatordelt data):

  1. Opprett ny Excel-fil
  2. Ctrl + A for å velge alle celler
  3. I tallformat kombinasjonsboks, velger du Tekst
  4. Åpne tabulatordelt fil i teksteditor
  5. Velg alle, kopiere og lime inn i Excel
Svarte 06/04/2011 kl. 13:18
kilden bruker

stemmer
14

Dette fungerer for Microsoft Office 2010, Excel versjon 14

Jeg misread OP preferanser "for å gjøre noe for å selve filen." Jeg er fortsatt å holde dette for de som ønsker en løsning å formatere import direkte

  1. Åpne et tomt (ny) fil (Fil -> Ny fra arbeidsbok)
  2. Åpne Import Wizard (Data -> Fra tekst)
  3. Velg CSV-fil og import
  4. I dialogboksen, velg 'Avgrenset', og klikk på Neste.
  5. Velg skilletegn (fjern haken alt, men 'komma'), velger Tekst-kvalifiseringen (sannsynligvis {None}), klikker du Neste
  6. I forhåndsvisning data feltet velger du kolonnen du ønsker å være tekst. Det bør fremheve.
  7. I dataformat Kolonne -feltet velger 'Tekst'.
  8. Klikk ferdig.
Svarte 15/05/2012 kl. 19:27
kilden bruker

stemmer
2

Legge til en non-breaking plass i cellen kunne hjelpe. For eksempel: "firstvalue";"secondvalue";"005 ";"othervalue"

Det tvinger Excel til å behandle den som en tekst og plassen er ikke synlig. I Windows kan du legge til en ikke-breaking plass ved tiping alt + 0160. Se her for mer info: http://en.wikipedia.org/wiki/Non-breaking_space

Prøvde på Excel 2010. Håper dette kan hjelpe mennesker som fortsatt søker en ganske skikkelig løsning på dette problemet.

Svarte 09/10/2013 kl. 12:01
kilden bruker

stemmer
0

Bare legg "før nummeret i CSV doc.

Svarte 19/11/2013 kl. 08:17
kilden bruker

stemmer
2

Jeg hadde dette problemet ved eksport CSV-data fra C # -kode, og løst dette ved å sette den ledende null data med tabulatortegn \ t, slik at dataene ble tolket som tekst i stedet for tall i Excel (ennå motsetning prepending andre tegn, det ville' t sees).

Jeg liker = "001" tilnærming, men dette ville ikke tillate eksport CSV data som skal gjeninnføres igjen til min C # applikasjon uten å fjerne all denne formateringen fra import CSV-fil (i stedet jeg vil bare trimme importere data) .

Svarte 24/01/2014 kl. 08:20
kilden bruker

stemmer
1

Dette har vært driver meg gal hele dagen (så sant du ikke kan kontrollere Excel kolonnetyper før du åpner CSV-fil), og dette fungerte for meg, ved hjelp av VB.NET og Excel Interop:

        'Convert .csv file to .txt file.
        FileName = ConvertToText(FileName)

        Dim ColumnTypes(,) As Integer = New Integer(,) {{1, xlTextFormat}, _
                                                        {2, xlTextFormat}, _
                                                        {3, xlGeneralFormat}, _
                                                        {4, xlGeneralFormat}, _
                                                        {5, xlGeneralFormat}, _
                                                        {6, xlGeneralFormat}}

        'We are using OpenText() in order to specify the column types.
        mxlApp.Workbooks.OpenText(FileName, , , Excel.XlTextParsingType.xlDelimited, , , True, , True, , , , ColumnTypes)
        mxlWorkBook = mxlApp.ActiveWorkbook
        mxlWorkSheet = CType(mxlApp.ActiveSheet, Excel.Worksheet)


Private Function ConvertToText(ByVal FileName As String) As String
    'Convert the .csv file to a .txt file.
    'If the file is a text file, we can specify the column types.
    'Otherwise, the Codes are first converted to numbers, which loses trailing zeros.

    Try
        Dim MyReader As New StreamReader(FileName)
        Dim NewFileName As String = FileName.Replace(".CSV", ".TXT")
        Dim MyWriter As New StreamWriter(NewFileName, False)
        Dim strLine As String

        Do While Not MyReader.EndOfStream
            strLine = MyReader.ReadLine
            MyWriter.WriteLine(strLine)
        Loop

        MyReader.Close()
        MyReader.Dispose()
        MyWriter.Close()
        MyWriter.Dispose()

        Return NewFileName
    Catch ex As Exception
        MsgBox(ex.Message)
        Return ""
    End Try

End Function
Svarte 14/05/2014 kl. 20:42
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more