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

Jak hromadně převádět více souborů CSV do souborů XLS (X) v aplikaci Excel?

Převést soubor CSV do souboru XlS nebo XLSX je pro vás velmi snadné pomocí funkce Uložit jako. Převést více souborů CSV na soubory XLS nebo XLSX ze složky je však časově náročné, protože je můžete ukládat jeden po druhém ručně. Zde představuji kód makra pro rychlou hromadnou konverzi všech souborů CSV na soubory XLS (x) ze složky.

Dávkový převod souborů CSV do souborů XlS (X) pomocí kódu makra


Dávkový převod souborů CSV do souborů XlS (X) pomocí kódu makra

Chcete-li převést více souborů CSV z jedné složky do souborů XLS (X), postupujte takto:

1. Povolte nový sešit, stiskněte Alt + F11 klíče k otevření Microsoft Visual Basic pro aplikace okno a klikněte na Vložit > Modul. Viz snímek obrazovky:
dávkový převod doc cvs xls 1

Poznámka: Zkontrolujte, zda jsou uzavřeny všechny soubory CSV, které chcete převést.

2. Potom vložte pod kód makra do Modul skript a stiskněte F5 klíč ke spuštění kódu.

VBA: Převést CSV na 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 rozbalovacím dialogovém okně vyberte určenou složku obsahující soubory CSV, které chcete převést. Viz screenshot:
dávkový převod doc cvs xls 2

4. cvaknutí OK, všechny soubory CSV ve vybrané složce byly převedeny na soubory XLS v ní.
dávkový převod doc cvs xls 3

Tip: Pokud chcete převést soubory CSV na soubory XLSX, použijete níže uvedený kód VBA.

VBA: Převádějte soubory CSV na 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

rychle převeďte nebo exportujte řadu listů do samostatných souborů XLS / Word / PDF nebo jiných formátů najednou

Excel vás obvykle nepodporuje s možností rychlého exportu nebo uložení rozsahu jako souboru CSV nebo Excel. Pokud chcete uložit rozsah dat jako soubor CSV nebo sešit v aplikaci Excel, možná budete muset k tomu použít makro VBA nebo zkopírovat rozsah do schránky a vložit jej do nového sešitu a poté sešit uložit jako CSV nebo Pracovní sešit. Kutools pro Excel rozšiřuje Excel o Rozsah exportu do souboru nástroj pro uživatele aplikace Excel, kteří chtějí rychle zpracovat následující operace :  Klikněte pro 30-denní plně funkční bezplatná zkušební verze!
rozsah buněk pro export dokumentů do souboru
 
Kutools pro Excel: s více než 300 praktickými doplňky Excelu, které lze zdarma vyzkoušet bez omezení 30 dnů.

Relativní články:


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
officetab dno
Komentáře (38)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Chci to udělat naopak - převést XLS na CSV. funguje tento skript?
Sub CSVtoXLS()
'AktualizovatExtendoffice20170814
Dim xFd As FileDialog
Dim xSPath jako řetězec
Dim xXLSFile jako řetězec
Dim xWsheet As String
Application.DisplayAlerts = False
Application.StatusBar = Pravda
xWsheet = ActiveWorkbook.Name
Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
xFd.Title = "Vyberte složku:"
Pokud xFd.Show = -1 Pak
xSPath = xFd.SelectedItems(1)
Jiný
Konec Sub
End If
If Right(xSPath, 1) <> "\" Potom xSPath = xSPath + "\"
xXLSFile = Dir(xSPath & "*.xls")
Proveďte Zatímco xXLSFile <> ""
Application.StatusBar = "Konverze: " & xXLSFile
Workbooks.Open Filename:=xSPath & xXLSFile
ActiveWorkbook.SaveAs Replace(xSPath & xXLSFile, ".xls", ".csv", vbTextCompare), xlNormal
ActiveWorkbook.Close
Windows(xWsheet).Aktivovat
xXLSFile = Dir
Smyčka
Application.StatusBar = False
Application.DisplayAlerts = True
End Sub
Tento komentář byl moderátorem webu minimalizován
Sub ConvertCSVToXlsx()



Dim myfile As String

Dim oldfname As String, newfname As String

Ztlumit pracovní soubor

Dim folderName As String



Application.DisplayAlerts = False

Application.ScreenUpdating = False



' Název zachycení aktuálního souboru

myfile = ActiveWorkbook.Name



' Nastavte název složky pro práci

folderName = "D:\tmp\"



' Projděte všechny soubory CSV ve složce

workfile = Dir(název složky & "*.CSV")

Dělat během pracovního souboru <> ""

' Otevřete soubor CSV

Workbooks.Open Filename:=folderName & workfile

' Zachytit název starého souboru CSV

oldfname = ActiveWorkbook.FullName

' Převést na XLSX

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

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

ActiveWorkbook.Close

Smažte starý soubor CSV

Zabij staré jméno

Windows(myfile).Aktivovat

pracovní soubor = Dir()

Smyčka



Application.DisplayAlerts = True

Application.ScreenUpdating = True



End Sub
Tento komentář byl moderátorem webu minimalizován
"Tip: Pokud chcete převést soubory CSV na soubory XLXS, stačí změnit .xls na .xlsx v makru ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare)."

Zkoušel jsem to a Excel nemohl otevřít výsledné soubory. Zobrazila se mi následující zpráva: "Excel nemůže otevřít soubor 'název_souboru.xlsx', protože formát souboru nebo přípona souboru nejsou platné. Ověřte, zda soubor nebyl poškozen a zda přípona souboru odpovídá formátu souboru."

Skript byl však úspěšný pro převod do formátu .xls.
Tento komentář byl moderátorem webu minimalizován
Předtím jsem tento problém nenašel, děkuji za správný komentář. Tip jsem opravil.
Tento komentář byl moderátorem webu minimalizován

Tento komentář byl moderátorem webu minimalizován
Mnohokrát vám děkujeme za váš skvělý skript pro CSV až XLS. Pro mou práci je mnohem užitečnější
Tento komentář byl moderátorem webu minimalizován
Dobrý den,

Váš skript je skvělý, ale nepřevádí csv oddělené středníky. Můžete prosím poslat řešení pro ně?

Děkuji
Tento komentář byl moderátorem webu minimalizován
Omlouváme se, zde nemám žádné řešení, možná můžete svůj dotaz umístit na naše fórum, někdo jiný vám může pomoci. https://www.extendoffice.com/forum.html
Tento komentář byl moderátorem webu minimalizován
možná jsem pozdě, právě jsem dostal problém, kdy jsem potřeboval převést středníky CSV soubory a přidal jsem to do kódu a fungovalo to, doufám, že to někomu pomůže

Změňte 'Workbooks.Open Filename:=xSPath & xCSVFile' tímto 'Workbooks.Open Filename:=xSPath & xCSVFile, Delimiter:=";", Local:=True'
Tento komentář byl moderátorem webu minimalizován
Použil jsem soubor více csv na více xls, ale mýlil jsem se xls de csv soubory mají ; oddělené informace, ale spojí se v buňkách. Jak se to dá vyřešit?
Tento komentář byl moderátorem webu minimalizován
Kód nemůže podporovat soubor CSV oddělený čárkou.
Tento komentář byl moderátorem webu minimalizován
Když jsem zadal název složky, program řekl: "Vašemu hledání neodpovídají žádné soubory." Ale ve složce je 2,609 XNUMX souborů .csv
Tento komentář byl moderátorem webu minimalizován
Kód nepodporuje soubor csv oddělený čárkou, jsou v tomto případě vaše soubory?
Tento komentář byl moderátorem webu minimalizován
Ahoj,

skvělý článek - děkuji! Skoro mi to funguje.

Zde je problém: Mám soubor csv oddělený svislou čarou. Změnil jsem výchozí oddělovač oken (přes ovládací panel/regionální nastavení) na "|". Když tedy otevřu soubor csv pomocí Excelu, otevře se, přímo čte a analyzuje pole do sloupců správně. Vše, co musím udělat, je uložit jako xls nebo xlsx, hotovo. Když se podívám na váš kód, mělo by to být to, co kód dělá: otevře soubory csv ve složce, uloží je jako xls nebo xlsx a zacyklí to.

Zde je problém: Když otevřu tyto soubory aplikace Excel, oddělovače potrubí jsou stále tam, nic se neanalyzuje do sloupců. Toto bylo chování jako před mojí změnou na výchozí nastavení oddělené svislou čarou v nastavení Windows. Zdá se tedy, že Excel tato nastavení Windows nepoužívá. Ověřil jsem to nahrazením oddělovačů svislou čárkou v kopii souboru - ze dvou souborů zůstal svislý oddělený neanalyzován, oddělovač s čárkou byl převeden v pořádku.

Nějaký nápad, kde lze najít nebo změnit toto oddělování čárkou vestavěné v Excelu, nebo zda v kódu existuje způsob, jak to udělat? Raději bych NEMUSEL hledat a nahrazovat a pak ukládat...

Díky, HC
Tento komentář byl moderátorem webu minimalizován
Pokud chcete data rozdělit do sloupců na základě oddělovače svislých čar v Excelu, stačí použít funkci Text to Columns k rozdělení dat podle / po překrytí souborů csv do xls.
Tento komentář byl moderátorem webu minimalizován
Ve skutečnosti není kód užitečný pro soubory aplikace Excel.
Tento komentář byl moderátorem webu minimalizován
Ahoj, skvělý skript, který mi fungoval po vyzkoušení všech ostatních skriptů dostupných na Googlu. Přidal jsem několik dalších řádků, které provádějí operaci textu do sloupců, kterou chci. Může mi někdo pomoci, jak upravit skript zadáním umístění složky na místní jednotce namísto otevření dialogového okna, protože ve skutečnosti automatizuji systém
. Díky předem
Tento komentář byl moderátorem webu minimalizován
Hi
Mohl byste sdílet skript, který provádí text do sloupců?
S pozdravem
Tento komentář byl moderátorem webu minimalizován
Skvělý skript po prohledání všech ostatních skriptů dostupných na Googlu. Může někdo pomoci, jak upravit tento skript zadáním umístění složky na místní jednotce místo toho, aby mu umožnil otevřít dialogové okno, protože ve skutečnosti automatizuji systém. Díky předem
Tento komentář byl moderátorem webu minimalizován
Skvělý kousek kódu. Velmi užitečné. Pokud se nepletu, kód pro .xlsx vypadá stejně jako kód .xls.

Tento řádek:
ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare), xlWorkbookDefault

Předpokládám, že by to mělo být: ".csv" , ".xlsx", vbTextCompare atd.
Tento komentář byl moderátorem webu minimalizován
Změnil jsem kód tak, jak je popsáno výše; nyní skript funguje podle očekávání: generuje soubory xlsx
Tento komentář byl moderátorem webu minimalizován
ne, nemáš. stále to říká xls v obou verzích.
Tento komentář byl moderátorem webu minimalizován
toto makro nezobrazuje můj soubor csv
Tento komentář byl moderátorem webu minimalizován
Jeden malý problém s tímto kódem je, že při otevírání csv a ukládání jako xlsx může dojít ke ztrátě určité přesnosti (počet desetinných míst).
Způsob, jak tomu zabránit, je vybrat všechny buňky hned po otevření, nastavit počet desetinných míst na požadovanou hodnotu (pro mě osobně 15) a *pak* uložit jako xlsx

Jinak má xlsx méně detailů (menší přesnost z hlediska desetinných míst) než původní csv, což může v některých aplikacích vést k problémům
Tento komentář byl moderátorem webu minimalizován
změní můj formát sloupce data z dd-mm-yyyy na dd/mm/rrrr, může prosím někdo pomoci s tím, jak tomuto skriptu zabránit ve změně formátu sloupců.
Díky moc.
Tento komentář byl moderátorem webu minimalizován
Ahoj, vipere, po převodu je můžeš naformátovat zpět, vybrat data a kliknutím pravým tlačítkem vybrat z kontextové nabídky Formát buněk, v dialogovém okně Formát buňky na kartě Číslo klikněte na Vlastní v seznamu Kategorie a zadejte mm-dd- yyyy do textového pole v pravé části. Nebo pokud máte Kutools pro Excel, použijte formátování data pro změnu formátu data podle potřeby.
Tento komentář byl moderátorem webu minimalizován
skvělý článek. Jak mohu uložit všechny převedené soubory do nového umístění? Můžete prosím aktualizovat kód a poslat mi ho. Stejně jako umožnit uživateli vybrat si cílovou složku.


Díky
Tento komentář byl moderátorem webu minimalizován
Máte chybu na řádku 22 souboru csv až xlsx
S chybou - ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xls", vbTextCompare), xlWorkbookDefault
Opraveno - ActiveWorkbook.SaveAs Replace(xSPath & xCSVFile, ".csv", ".xslx", vbTextCompare), xlWorkbookDefault
Tento komentář byl moderátorem webu minimalizován
Díky za připomenutí, aktualizoval jsem to, ještě jednou díky.
Tento komentář byl moderátorem webu minimalizován
Zobrazuje se mi chyba „Proměnná objektu nebo s nenastavenou proměnnou bloku“ pro tento řádek:
xFd.Title = "/Users/[my.name]/Documents/[myFolder]" >> toto je cesta ke konkrétní složce v mém počítači, kde provádím převod (složka má uvnitř spoustu souborů csv )

Dělám tady něco špatně?
Tento komentář byl moderátorem webu minimalizován
Funguje mi to, ale přípona souboru se nemění. Nějaké tipy?
Tento komentář byl moderátorem webu minimalizován
Totéž pro mě - všechny soubory zůstávají .csv.
Tento komentář byl moderátorem webu minimalizován
Všechny soubory csv, které si vyberete, byly uloženy jako nové soubory Excel, původní soubory (csv) se nemění, existují nové soubory Excel se stejným obsahem.
Tento komentář byl moderátorem webu minimalizován
Měl jsem stejný problém. Pokud má váš zdrojový soubor příponu velkými písmeny (.CSV), nefunguje to. Stačí v kódu na řádku 22 nahradit .csv za .CSV a pak by to mělo fungovat. Tedy alespoň pro mě.
Tento komentář byl moderátorem webu minimalizován
Jak bych začlenil kód do rutiny dávkového souboru XLSX, abych středníkem oddělil data do samostatných sloupců? Sdílený kód převede soubor z .csv na .xlsx, ale nerozděluje data do samostatných sloupců.
Tento komentář byl moderátorem webu minimalizován
ano není to práce.
Tento komentář byl moderátorem webu minimalizován
dobré ráno společníci

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 typo 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 to lasma 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 sievo abrieraca, como 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.


Workbooks.Open Filename:=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)), TrailingMinusNumbers:=True
ActiveCell.Cells.Select
ActiveCell.Cells.EntireColumn.AutoFit
ActiveCell.Offset(1, 0).Range("A1").Vybrat
ActiveWorkbook.Save

HASTA AQUI SOUHLASÍM TY

ActiveWorkbook.Close
Windows(xWsheet).Aktivovat
xCSVFile = Dir

Smyčka
Application.StatusBar = False
Application.DisplayAlerts = True
End Sub

No se mi hago explicar bien, pero es mi problema.
Zatím zde nejsou žádné komentáře
Načíst další
Zanechte prosím své komentáře v angličtině
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL