Note: The other languages of the website are Google-translated. Back to English

Kako v Excelu paketno pretvoriti več datotek CSV v datoteke XLS (X)?

Pretvorbo datoteke CSV v datoteko XlS ali XLSX je zelo enostavno z uporabo funkcije Shrani kot. Pretvorba več datotek CSV v datoteke XLS ali XLSX iz mape pa zamuja z ročnim shranjevanjem po eno. Tukaj predstavljam makro kodo za hitro paketno pretvorbo vseh datotek CSV v datoteke XLS (x) iz mape.

Paketno pretvorite datoteke CSV v datoteke XlS (X) z makro kodo


Paketno pretvorite datoteke CSV v datoteke XlS (X) z makro kodo

Če želite pretvoriti več datotek CSV iz ene mape v datoteke XLS (X), lahko storite naslednje:

1. Omogočite nov delovni zvezek, pritisnite Alt + F11 tipke za odpiranje Microsoft Visual Basic za aplikacije okno in kliknite Vstavi > Moduli. Oglejte si posnetek zaslona:
doc paket pretvori cvs xls 1

Opombe: Prepričajte se, da so vse datoteke CSV, ki jih želite pretvoriti, zaprte.

2. Nato prilepite spodnjo kodo makra na Moduli in pritisnite F5 tipko za zagon kode.

VBA: Pretvori CSV v XLS

Sub CSVtoXLS()
'UpdatebyExtendoffice20170814
    Dim xFd As FileDialog
    Dim xSPath As String
    Dim xCSVFile As String
    Dim xWsheet As String
    Application.DisplayAlerts = False
    Application.StatusBar = True
    xWsheet = ActiveWorkbook.Name
    Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
    xFd.Title = "Select a folder:"
    If xFd.Show = -1 Then
        xSPath = xFd.SelectedItems(1)
    Else
        Exit Sub
    End If
    If Right(xSPath, 1) <> "\" Then xSPath = xSPath + "\"
    xCSVFile = Dir(xSPath & "*.csv")
    Do While xCSVFile <> ""
        Application.StatusBar = "Converting: " & xCSVFile
        Workbooks.Open Filename:=xSPath & xCSVFile
        ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare), xlNormal
        ActiveWorkbook.Close
        Windows(xWsheet).Activate
        xCSVFile = Dir
    Loop
    Application.StatusBar = False
    Application.DisplayAlerts = True
End Sub

3. V pojavnem pogovornem oknu izberite določeno mapo z datotekami CSV, ki jih želite pretvoriti. Oglejte si posnetek zaslona:
doc paket pretvori cvs xls 2

4. klik OK, so vse datoteke CSV v izbrani mapi v njej pretvorjene v datoteke XLS.
doc paket pretvori cvs xls 3

Nasvet: Če želite datoteke CSV pretvoriti v datoteke XLSX, uporabite spodnjo kodo VBA.

VBA: Pretvorite datoteke CSV v XLSX

Sub CSVtoXLS()
'UpdatebyExtendoffice20170814
    Dim xFd As FileDialog
    Dim xSPath As String
    Dim xCSVFile As String
    Dim xWsheet As String
    Application.DisplayAlerts = False
    Application.StatusBar = True
    xWsheet = ActiveWorkbook.Name
    Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
    xFd.Title = "Select a folder:"
    If xFd.Show = -1 Then
        xSPath = xFd.SelectedItems(1)
    Else
        Exit Sub
    End If
    If Right(xSPath, 1) <> "\" Then xSPath = xSPath + "\"
    xCSVFile = Dir(xSPath & "*.csv")
    Do While xCSVFile <> ""
        Application.StatusBar = "Converting: " & xCSVFile
        Workbooks.Open Filename:=xSPath & xCSVFile
        ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xlsx", vbTextCompare), xlWorkbookDefault
        ActiveWorkbook.Close
        Windows(xWsheet).Activate
        xCSVFile = Dir
    Loop
    Application.StatusBar = False
    Application.DisplayAlerts = True
End Sub

hitro pretvorite ali izvozite obseg lista, da enkrat ločite datoteke XLS / Word / PDF ali druge oblike zapisa

Običajno Excel ne podpira možnosti hitrega izvoza ali shranjevanja obsega kot datoteke CSV ali Excel. Če želite shraniti obseg podatkov kot CSV ali delovni zvezek v Excelu, boste morda morali za to uporabiti makro VBA ali kopirati obseg v odložišče in ga prilepiti v nov delovni zvezek, nato pa delovni zvezek shraniti kot CSV ali Delovni zvezek. Kutools za Excel povečuje Excel z Izvozi obseg v datoteko pripomoček za uporabnike Excela, ki želijo hitro obdelati naslednje postopke:  Kliknite za 30-dnevni brezplačni preizkus z vsemi funkcijami!
doc izvozi obseg celic v datoteko
 
Kutools za Excel: z več kot 300 priročnimi dodatki za Excel, ki jih lahko brezplačno preizkusite brez omejitev 30 dni.

Relativni članki:


Najboljša orodja za pisarniško produktivnost

Kutools za Excel rešuje večino vaših težav in poveča vašo produktivnost za 80%

  • Ponovna uporaba: Hitro vstavite zapletene formule, grafikoni in vse, kar ste že uporabljali; Šifriraj celice z geslom; Ustvari poštni seznam in pošiljanje e-pošte ...
  • Vrstica Super Formula (enostavno urejanje več vrstic besedila in formule); Bralna postavitev (enostavno branje in urejanje velikega števila celic); Prilepite v filtrirani obseg...
  • Združi celice / vrstice / stolpce brez izgube podatkov; Vsebina razdeljenih celic; Združi podvojene vrstice / stolpce... prepreči podvojene celice; Primerjaj obsege...
  • Izberite Duplicate ali Unique Vrstice; Izberite prazne vrstice (vse celice so prazne); Super Find in Fuzzy Find v mnogih delovnih zvezkih; Naključna izbira ...
  • Natančna kopija Več celic brez spreminjanja sklica formule; Samodejno ustvarjanje referenc na več listov; Vstavi oznake, Potrditvena polja in še več ...
  • Izvleček besedila, Dodaj besedilo, Odstrani po položaju, Odstrani presledek; Ustvari in natisni vmesne seštevke strani Pretvarjanje med vsebino celic in komentarji...
  • Super filter (shranite in uporabite sheme filtrov za druge liste); Napredno razvrščanje glede na mesec / teden / dan, pogostost in drugo; Poseben filter s krepko, ležeče ...
  • Združite delovne zvezke in delovne liste; Spoji tabele na podlagi ključnih stolpcev; Razdelite podatke na več listov; Paketna pretvorba xls, xlsx in PDF...
  • Več kot 300 zmogljivih funkcij. Podpira Office / Excel 2007-2021 in 365. Podpira vse jezike. Enostavna uvedba v vašem podjetju ali organizaciji. 30-dnevna brezplačna preizkusna različica vseh funkcij. 60-dnevna garancija vračila denarja.
zavihek kte 201905

Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
dno pisarniške mize
Komentarji (38)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
Želim narediti nasprotno - pretvoriti XLS v CSV. ali ta skript deluje?
Pod CSVtoXLS()
'PosodobitevExtendoffice20170814
Dim xFd kot FileDialog
Dim xSPath kot niz
Dim xXLSFile kot niz
Dim xWsheet kot niz
Application.DisplayAlerts = False
Application.StatusBar = True
xWsheet = ActiveWorkbook.Name
Nastavite xFd = Application.FileDialog(msoFileDialogFolderPicker)
xFd.Title = "Izberi mapo:"
Če je xFd.Show = -1 Potem
xSPath = xFd.SelectedItems(1)
Else
Exit Sub
Konec Če
Če je desno (xSPath, 1) <> "\" Potem je xSPath = xSPath + "\"
xXLSFile = Dir(xSPath & "*.xls")
Naredi, medtem ko xXLSFile <> ""
Application.StatusBar = "Pretvorba: " & xXLSFile
Delovni zvezki.Odpri Ime datoteke:=xSPath & xXLSFile
ActiveWorkbook.SaveAs Replace(xSPath & xXLSFile, ".xls", ".csv", vbTextCompare), xlNormal
ActiveWorkbook.Zapri
Windows(xWsheet).Aktiviraj
xXLSFFile = Dir
Zanka
Application.StatusBar = False
Application.DisplayAlerts = True
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Sub ConvertCSVToXlsx()



Zatemni mojo datoteko kot niz

Dim staro ime kot niz, novo ime kot niz

Zatemni delovna datoteka

Zatemni ime mape kot niz



Application.DisplayAlerts = False

Application.ScreenUpdating = Napačno



' Zajemi ime trenutne datoteke

myfile = ActiveWorkbook.Name



' Nastavite ime mape za delo

Ime mape = "D:\tmp\"



' Prelistajte vse datoteke CSV v mapi

delovna datoteka = Dir(ime mape & "*.CSV")

Naredi med delovno datoteko <> ""

' Odprite datoteko CSV

Delovni zvezki.Odpri Ime datoteke:=Ime mape & delovna datoteka

' Zajemite ime stare datoteke CSV

oldfname = ActiveWorkbook.FullName

' Pretvori v XLSX

newfname = Ime mape & Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4) & ".xlsx"

ActiveWorkbook.SaveAs Filename:=newfname, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=True

ActiveWorkbook.Zapri

' Izbrišite staro datoteko CSV

Ubij staro ime

Windows(myfile).Aktiviraj

delovna datoteka = Dir()

Zanka



Application.DisplayAlerts = True

Application.ScreenUpdating = Res



End Sub
Ta komentar je moderator na spletnem mestu minimiziral
"Nasvet: Če želite pretvoriti datoteke CSV v datoteke XLXS, morate samo spremeniti .xls v .xlsx v makru ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare)."

Poskusil sem to in Excel ni mogel odpreti nastalih datotek. Dobil sem naslednje sporočilo: "Excel ne more odpreti datoteke 'ime datoteke.xlsx', ker oblika datoteke ali pripona datoteke ni veljavna. Preverite, ali datoteka ni poškodovana in ali se pripona datoteke ujema z obliko datoteke."

Vendar je bil skript uspešen za pretvorbo v .xls.
Ta komentar je moderator na spletnem mestu minimiziral
Te težave prej nisem našel, hvala za vaš pravilen komentar. Namig sem popravil.
Ta komentar je moderator na spletnem mestu minimiziral

Ta komentar je moderator na spletnem mestu minimiziral
Najlepša hvala za vaš odličen skript za CSV v XLS. Za moje delo je veliko bolj uporabna
Ta komentar je moderator na spletnem mestu minimiziral
Hi,

Vaš skript je odličen, vendar ne pretvori csv, ločenega s podpičji. Lahko prosim objaviš rešitev zanje?

Hvala
Ta komentar je moderator na spletnem mestu minimiziral
Oprostite, tukaj nimam nobene rešitve, morda lahko postavite svoje vprašanje na naš forum, lahko vam kdo drug pomaga. https://www.extendoffice.com/forum.html
Ta komentar je moderator na spletnem mestu minimiziral
morda zamujam, pravkar sem dobil težavo, ko sem moral pretvoriti datoteke CSV s podpičjem in sem to dodal v kodo in je delovalo upam, da bo to komu pomagalo

Spremenite 'Workbooks.Open Filename:=xSPath & xCSVFile' s tem 'Workbooks.Open Filename:=xSPath & xCSVFile, Delimiter:=";", Local:=True'
Ta komentar je moderator na spletnem mestu minimiziral
Uporabil sem datoteko več csv za več xls, vendar sem dobil napačno xls de csv datoteke imajo ; ločene informacije, vendar postanejo skupaj v celicah. Kako je to mogoče rešiti?
Ta komentar je moderator na spletnem mestu minimiziral
Koda ne podpira datoteke csv, ločene z vejico.
Ta komentar je moderator na spletnem mestu minimiziral
Ko sem dal ime mape, je program rekel: "Nobena datoteka se ne ujema z vašim iskanjem." Toda v mapi je 2,609 datotek .csv
Ta komentar je moderator na spletnem mestu minimiziral
Koda ne podpira datoteke csv, ločene z vejico, ali so vaše datoteke v tem primeru?
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo,

odličen članek - hvala! Skoraj deluje zame.

Tu je težava: imam datoteko csv, ločeno s črto. Spremenil sem privzeto ločilo oken (prek nadzorne plošče/regionalnih nastavitev) v "|". Torej, ko odprem datoteko csv z Excelom, se odpre, neposredno prebere in pravilno razčleni polja v stolpce. Vse kar moram storiti je, da shranim kot xls ali xlsx, končano. Ko pogledam vašo kodo, bi to moralo biti tisto, kar koda počne: odpre datoteke csv v mapi, jih shrani kot xls ali xlsx in jih pregleda.

Tu je težava: ko odprem te Excelove datoteke, so ločnice cevi še vedno tam, nič ni razčlenjeno v stolpce. To je bilo vedenje kot pred mojo spremembo na privzeto nastavitev, razmejeno s črto, v nastavitvah sistema Windows. Torej se zdi, da Excel ne uporablja teh nastavitev sistema Windows. To sem preveril tako, da sem v kopiji datoteke zamenjal ločnice med vejicami z ločnicami z vejicami – od obeh datotek je ostal nerazčlenjen razčlenjen z vejico, razmejen z vejico pa je bil pretvorjen čisto v redu.

Imate kakšno idejo, kje je mogoče najti ali spremeniti to razmejitev z vejico, vgrajeno v Excelu, ali ali obstaja način v kodi, da to storite? Raje bi NI bilo treba iskati in zamenjati, nato pa shraniti ...

Hvala, HC
Ta komentar je moderator na spletnem mestu minimiziral
Če želite podatke razdeliti v stolpce na podlagi ločilnika cevi v Excelu, uporabite funkcijo Besedilo v stolpce, da razdelite podatke po / potem, ko datoteke csv prekrijete v xls.
Ta komentar je moderator na spletnem mestu minimiziral
Koda pravzaprav ni uporabna za Excelove datoteke.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, odličen skript, ki mi je deloval, potem ko sem preizkusil vse druge skripte, ki so na voljo v Googlu. Dodal sem še nekaj vrstic, ki izvajajo operacijo besedila v stolpce, ki jo želim. Ali mi lahko kdo pomaga, kako spremeniti skript tako, da določim lokacijo mape na lokalnem pogonu, namesto da odprem pogovorno okno, saj dejansko avtomatiziram sistem
. Hvala vnaprej
Ta komentar je moderator na spletnem mestu minimiziral
Hi
Ali lahko delite skript, ki izvede besedilo v stolpce??
Lep pozdrav
Ta komentar je moderator na spletnem mestu minimiziral
Odličen skript po iskanju vseh drugih skriptov, ki so na voljo v Googlu. Ali lahko kdo pomaga, kako spremeniti ta skript tako, da določi lokacijo mape na lokalnem pogonu, namesto da bi mu dovolil odpiranje pogovornega okna, saj dejansko avtomatiziram sistem. Hvala vnaprej
Ta komentar je moderator na spletnem mestu minimiziral
Kul košček kode. Zelo uporabno. Če se ne motim, je koda za .xlsx videti enako kot koda .xls.

Ta vrstica:
ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare), xlWorkbookDefault

Predvidevam, da bi moral biti: ".csv", ".xlsx", vbTextCompare itd.
Ta komentar je moderator na spletnem mestu minimiziral
Kodo sem spremenil tako, kot je opisano zgoraj; zdaj skript deluje po pričakovanjih: generira datoteke xlsx
Ta komentar je moderator na spletnem mestu minimiziral
ne, nisi. še vedno piše xls v obeh različicah.
Ta komentar je moderator na spletnem mestu minimiziral
ta makro ne prikaže moje datoteke csv
Ta komentar je moderator na spletnem mestu minimiziral
Ena majhna težava s to kodo je, da se lahko nekaj natančnosti (število decimalnih mest) izgubi, ko odprete csv in ga shranite kot xlsx.
To preprečite tako, da izberete vse celice takoj po odprtju, nastavite število decimalnih mest na želeno količino (osebno 15) in *nato* shranite kot xlsx

V nasprotnem primeru ima xlsx manj podrobnosti (manj natančnosti glede na decimalke) kot izvirni csv, kar lahko povzroči težave v nekaterih aplikacijah
Ta komentar je moderator na spletnem mestu minimiziral
spremeni moj format datumskega stolpca iz dd-mm-llll v dd/mm/llll, prosim, če lahko kdo pomaga, kako preprečiti, da bi ta skript spreminjal oblike stolpcev.
Najlepša hvala.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, viper, po pretvorbi jih lahko formatirate nazaj, izberete datume in z desno miškino tipko kliknete, da v kontekstnem meniju izberete Oblikuj celice, v pogovornem oknu Format Celld, pod zavihkom Številka, kliknite Po meri na seznamu Kategorija, nato vnesite mm-dd- yyyy v besedilno polje v desnem delu. Ali če imate Kutools za Excel, uporabite Uporabi oblikovanje datuma, da spremenite obliko datuma, kot potrebujete.
Ta komentar je moderator na spletnem mestu minimiziral
odličen članek. Kako lahko shranim vse pretvorjene datoteke na novo lokacijo? Lahko prosim posodobite kodo in mi jo pošljete. Kot dovolite uporabniku, da izbere svojo ciljno mapo.


Hvala
Ta komentar je moderator na spletnem mestu minimiziral
Imate napako v vrstici 22 csv v xlsx
Z napako - ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare), xlWorkbookDefault
Popravljeno - ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xslx", vbTextCompare), xlWorkbookDefault
Ta komentar je moderator na spletnem mestu minimiziral
Hvala za vaš opomnik, posodobil sem ga, hvala še enkrat.
Ta komentar je moderator na spletnem mestu minimiziral
Za to vrstico dobim napako "Spremenljivka objekta ali spremenljivka bloka ni nastavljena":
xFd.Title = "/Users/[my.name]/Documents/[myFolder]" >> to je pot do določene mape na mojem računalniku, kjer izvajam pretvorbo (mapa ima v sebi kopico datotek csv )

Ali tukaj delam kaj narobe?
Ta komentar je moderator na spletnem mestu minimiziral
To mi deluje, vendar se razširitev datoteke ne spreminja. Kakšen nasvet?
Ta komentar je moderator na spletnem mestu minimiziral
Enako zame – vse datoteke ostanejo .csv.
Ta komentar je moderator na spletnem mestu minimiziral
Vse datoteke csv, ki jih izberete, so bile shranjene kot nove excel datoteke, izvirne datoteke (csv) se ne spremenijo, obstajajo nove excel datoteke z enako vsebino.
Ta komentar je moderator na spletnem mestu minimiziral
Imel sem enak problem. Če ima vaša izvorna datoteka razširitev z velikimi črkami (.CSV), ne deluje. Samo zamenjajte .csv v .CSV v kodi v vrstici 22 in potem bi moralo delovati. No, vsaj zame je bilo tako.
Ta komentar je moderator na spletnem mestu minimiziral
Kako bi vključil kodo v rutino paketne datoteke XLSX, da bi s podpičjem ločili podatke v ločene stolpce? Skupna koda pretvori datoteko iz .csv v .xlsx, vendar podatkov ne loči v ločene stolpce.
Ta komentar je moderator na spletnem mestu minimiziral
ja, to ni delo.
Ta komentar je moderator na spletnem mestu minimiziral
dobro jutro tovariši

Adiciona a lo que hace el script, quisiera poder convertir inmediatamente el texto en columnas, por la opción que no es delimitado por ningún tipo de caracter, adicional los tamaños de las columnas son diferentes. Vale la pena aclarar que si tomo cada archivo por separado y le aplico la opción de texto en columnas, bajo esa opción los puedo convertir sin problemas, abriéndolos uno por uno, pero si grabo esa macro y le aplico a la misma macro in usando la opción de "USAR REFERENCIAS RELATIVAS", no hace el proceso bien, porque el graba las posiciones de la delimitación del archivo que uso de ejemplo, pero necesito que lo aplique nuevo a cada archivo, es abarchriera, cocaenumo y le hiciera manualmente la opción de delimitación y no aplique los valores de ubicación de las columnas identificados en el archivo ejemplo.

Ya inserte esa opcion en este archivo, sin embargo pasa lo que indico en la lineas arriba, solo requiero saber como puedo hacer para aplicar la conversion a cada archivo, aplicando la delimitacion del campo como su fuera un archivo nuevo.


Delovni zvezki.Odpri Ime datoteke:=xSPath & xCSVFile
ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xlsx", vbTextCompare), xlWorkbookDefault

ESTA PARTE ES LA QUE AGREGUE APLICANDO EL FORMATO DEL TEXTO A COLUMNAS

StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(18 _)
, 1), Array(38, 1)), Trailing MinusNumbers:=True
ActiveCell.Cells.Select
ActiveCell.Cells.EntireColumn.AutoFit
ActiveCell.Offset(1, 0).Range("A1").Izberi
ActiveWorkbook.Save

HASTA AQUI AGREGUE YO

ActiveWorkbook.Zapri
Windows(xWsheet).Aktiviraj
xCSVFile = Dir

Zanka
Application.StatusBar = False
Application.DisplayAlerts = True
End Sub

No se si me hago explicar bien, pero es mi problem.
Tu še ni objavljenih komentarjev
Obremenitev Več
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije

Sledi nam

Copyright © 2009 - www.extendoffice.com. | Vse pravice pridržane. Poganja ga ExtendOffice. | Kazalo
Microsoft in logotip Office sta blagovni znamki ali registrirani blagovni znamki družbe Microsoft Corporation v ZDA in / ali drugih državah.
Zaščiteno s Sectigo SSL