انتقل إلى المحتوى الرئيسي

كيف يتم استيراد ملفات CSV / text / xml متعددة بسرعة في Excel؟

في Excel ، ربما تكون قد ربطت حفظ مصنف كملف csv أو ملف نصي أو ملف xml ، ولكن هل سبق لك أن حاولت استيراد ملفات csv / text / xml متعددة من مجلد إلى مصنف أو ورقة عمل؟ في هذه المقالة ، أقدم بعض الطرق لاستيرادها دفعة واحدة بسرعة.

قم باستيراد ملفات نصية متعددة من مجلد إلى كل أوراق عمل في مصنف باستخدام VBA

استيراد ملفات CSV متعددة من مجلد إلى ورقة واحدة باستخدام VBA

استيراد ملفات xml متعددة من مجلد إلى ورقة واحدة باستخدام VBA

قم باستيراد أو دمج ملفات xml / csv متعددة في ورقة أو مصنف باستخدام Kutools for Excel فكرة جيدة 3

قم بتصدير كل ورقة بتنسيق csv / text / pdf إلى مجلد باستخدام Kutools for Excelفكرة جيدة 3


لاستيراد ملفات نصية من مجلد إلى مصنف ، يمكنك استخدام VBA أدناه للتعامل معها بسرعة.

1. قم بتمكين مصنف فارغ ، واضغط على ALT + F11 مفاتيح لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

2. انقر إدراج > وحدة، والصق VBA في ملف وحدة نافذة.

فبا: استيراد كافة الملفات النصية من مجلد إلى مصنف

Sub LoadPipeDelimitedFiles()
'UpdatebyKutoolsforExcel20151214
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\*.txt")
    Do While xFile <> ""
        xCount = xCount + 1
        Sheets(xCount).Select
        With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
          & xStrPath & "\" & xFile, Destination:=Range("A1"))
            .Name = "a" & xCount
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 437
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileOtherDelimiter = "|"
            .TextFileColumnDataTypes = Array(1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
            xFile = Dir
        End With
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files txt", , "Kutools for Excel"
End Sub

3. صحافة F5 مفتاح أو يجري زر لتشغيل VBA ، وحدد المجلد الذي تريد استيراد الملفات النصية منه في مربع الحوار الذي يظهر. انظر لقطة الشاشة:

doc استيراد نص csv متعدد xml 1

4. وانقر OK، وتم استيراد كل ملف نصي في المجلد المحدد إلى ورقة عمل واحدة من المصنف النشط. انظر لقطة الشاشة:

doc استيراد نص csv متعدد xml 2doc استيراد نص csv متعدد xml 3

ادمج بسهولة أوراق / مصنف متعدد في ورقة واحدة أو مصنف واحد

قد يكون دمج الأوراق المتعددة أو المصنفات في ورقة واحدة أو مصنف واحد أمرًا صعبًا في Excel ، ولكن مع ملحق دمج في Kutools for Excel ، يمكنك دمج عشرات الأوراق / المصنفات في ورقة واحدة أو مصنف واحد ، كما يمكنك دمج الأوراق في واحدة بعدة نقرات فقط.  انقر للحصول على نسخة تجريبية مجانية كاملة المواصفات لمدة 30 يومًا!
الجمع بين الأوراق
 
Kutools for Excel: مع أكثر من 300 وظيفة إضافية مفيدة في Excel ، يمكنك تجربتها مجانًا دون قيود في أيام 30

لاستيراد جميع ملفات csv من مجلد في ورقة واحدة ، يمكنك استخدام رمز VBA أدناه.

1. قم بتمكين ورقة عمل فارغة ، ثم اضغط على ALT + F11 مفاتيح لفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

2. انقر إدراج > وحدة، والصق أدناه VBA في ملف وحدة نافذة.

فبا: استيراد ملفات csv من مجلد إلى ورقة عمل واحدة

Sub ImportCSVsWithReference()
'UpdatebyKutoolsforExcel20151214
    Dim xSht  As Worksheet
    Dim xWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Set xSht = ThisWorkbook.ActiveSheet
    If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then xSht.UsedRange.Clear
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\" & "*.csv")
    Do While xFile <> ""
        Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
        Columns(1).Insert xlShiftToRight
        Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
        ActiveSheet.UsedRange.Copy xSht.Range("A" & Rows.Count).End(xlUp).Offset(1)
        xWb.Close False
        xFile = Dir
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files csv", , "Kutools for Excel"
End Sub

3. صحافة F5 مفتاح أو انقر يجري لتنفيذ VBA ، وينبثق مربع حوار لتحديد المجلد الذي تريد استيراد جميع ملفات csv منه. انظر لقطة الشاشة:

doc استيراد نص csv متعدد xml 4

4. انقر OK، وينبثق مربع حوار لتذكيرك إذا قمت بمسح محتويات ورقة العمل النشطة قبل الاستيراد ، هنا أنقر نعم. انظر لقطة الشاشة:

doc استيراد نص csv متعدد xml 5

بعد النقر نعم، يتم استيراد جميع ملفات csv في المجلد المحدد إلى الورقة الحالية ، ووضع البيانات من العمود A إلى اليمين. انظر لقطة الشاشة:

doc استيراد نص csv متعدد xml 6doc استيراد نص csv متعدد xml 7

تلميح: إذا كنت تريد وضع ملفات csv أفقيًا في ورقة عمل ، فيمكنك استخدام VBA أدناه.

Sub ImportCSVsWithReferenceI()
'UpdatebyKutoolsforExcel20151214
    Dim xSht  As Worksheet
    Dim xWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Set xSht = ThisWorkbook.ActiveSheet
    If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then
        xSht.UsedRange.Clear
        xCount = 1
    Else
        xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
    End If
    Application.ScreenUpdating = False
    xFile = Dir(xStrPath & "\" & "*.csv")
    Do While xFile <> ""
        Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
        Rows(1).Insert xlShiftDown
        Range("A1") = ActiveSheet.Name
        ActiveSheet.UsedRange.Copy xSht.Cells(1, xCount)
        xWb.Close False
        xFile = Dir
        xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
    Loop
    Application.ScreenUpdating = True
    Exit Sub
ErrHandler:
    MsgBox "no files csv", , "Kutools for Excel"
End Sub 

doc استيراد نص csv متعدد xml 8


إذا كنت تريد استيراد جميع ملفات XML من مجلد إلى ورقة واحدة ، فيمكنك استخدام رمز VBA أدناه.

1. حدد ورقة فارغة تريد وضع البيانات المستوردة ، واضغط على ALT + F11 مفاتيح للتمكين ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

2. انقر إدراج > وحدة، قم بلصق كود VBA في ملف وحدة نافذة.

فبا: استيراد ملفات XML من مجلد إلى ورقة عمل.

Sub From_XML_To_XL()
'UpdatebyKutoolsforExcel20151214
    Dim xWb As Workbook
    Dim xSWb As Workbook
    Dim xStrPath As String
    Dim xFileDialog As FileDialog
    Dim xFile As String
    Dim xCount As Long
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a folder [Kutools for Excel]"
    If xFileDialog.Show = -1 Then
        xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    Application.ScreenUpdating = False
    Set xSWb = ThisWorkbook
    xCount = 1
    xFile = Dir(xStrPath & "\*.xml")
    Do While xFile <> ""
        Set xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)
        xWb.Sheets(1).UsedRange.Copy xSWb.Sheets(1).Cells(xCount, 1)
        xWb.Close False
        xCount = xSWb.Sheets(1).UsedRange.Rows.Count + 2
        xFile = Dir()
    Loop
    Application.ScreenUpdating = True
    xSWb.Save
    Exit Sub
ErrHandler:
    MsgBox "no files xml", , "Kutools for Excel"
End Sub

3. انقر يجري زر أو F5 مفتاح لتشغيل VBA ، وحدد مجلدًا في مربع الحوار ، انظر لقطة الشاشة:

doc استيراد نص csv متعدد xml 9

4. انقر OK، ويتم استيراد كافة ملفات XML الموجودة في المجلد المحدد إلى الورقة النشطة.


إذا لم تكن معتادًا على VBA ، فلا داعي للقلق ، فأنا أقدم هنا أداة مفيدة - كوتولس ل إكسيل لك. مع قوتها دمج يمكنك دمج ملفات xml أو ملفات csv المتعددة بسرعة في مصنف واحد أو ورقة Excel واحدة.

كوتولس ل إكسيل, مع أكثر من 300 وظائف يدوية ، تجعل مهامك أكثر سهولة. 

بعد تثبيت Kutools for Excel ، يرجى القيام بما يلي:(تنزيل مجاني Kutools for Excel الآن!)

1. اكسل اكسل ، وانقر كوتولس بلس > دمج. انظر لقطة الشاشة :
doc الجمع بين 1

2. وفي الخطوة 1 من الدمج مربع حوار ، اختر خيار فصل واحدًا حسب حاجتك. انظر لقطة الشاشة:
doc الجمع بين 2

3. انقر التالى للذهاب إلى الخطوة 2 من الدمج، اضغط هنا أضف لإضافة ملفات من مجلدات أو ملفات مختلفة من مجلد واحد إلى مصنف القائمة ، ويمكنك أيضًا تحديد الأوراق التي تريد الجمع منها ورقة العمل قائمة القسم الصحيح. انظر لقطة الشاشة:
doc kutools الجمع بين الأوراق 3

4. انقر التالى إلى الخطوة الأخيرة من دمج، ويمكنك تحديد خيارات الدمج.
doc kutools الجمع بين الأوراق 4

5. انقر نهاية، يظهر مربع حوار لتذكيرك بتحديد موقع لحفظ النتيجة المدمجة الجديدة. انظر لقطة الشاشة:
doc الجمع بين 5

6. انقر حفظ. تم دمج جميع أوراق الإضافة في ورقة واحدة جديدة.
doc الجمع بين 6

تلميح: بدافع دمج، يمكنك أيضًا الجمع بين عدة ملفات ملفات كسف تشكيل عدة مجلدات أو مجلد واحد في ورقة واحدة أو مصنف.


إذا كنت تريد تصدير كل ورقة كملف csv / text / pdf إلى مجلد ، كوتولس ل إكسيلالصورة انقسام وركبوك يمكن أن تقدم فائدة لك.

بعد تركيب مجاني Kutools for Excel ، يرجى القيام بما يلي:

1. قم بتمكين المصنف الذي تريد تصدير أوراق العمل الخاصة به ، وانقر فوق كوتولس بلس > مصنف > انقسام وركبوك. انظر لقطة الشاشة:

doc استيراد نص csv متعدد xml 10

2. في ال انقسام وركبوك مربع الحوار ، يمكنك التحقق من أسماء الأوراق التي تحتاج إلى تصديرها ، ويتم فحص جميع الأوراق افتراضيًا والتحقق منها حدد تنسيق الحفظ وحدد تنسيق الملف الذي تريد حفظه من القائمة المنسدلة أدناه. انظر لقطة الشاشة:

doc استيراد نص csv متعدد xml 11

3. انقر الانقسام وحدد مجلدًا لحفظ الملفات المقسمة بتنسيق قم بالاستعراض بحثًا عن مجلد الحوار ، انظر لقطة الشاشة:

doc استيراد نص csv متعدد xml 12

4. انقر OK، الآن يتم تصدير جميع الأوراق المحددة بتنسيق ملف جديد في المجلد المحدد.


مقالات ذات صلة:

أفضل أدوات إنتاجية المكتب

🤖 مساعد Kutools AI: إحداث ثورة في تحليل البيانات على أساس: التنفيذ الذكي   |  إنشاء التعليمات البرمجية  |  إنشاء صيغ مخصصة  |  تحليل البيانات وإنشاء الرسوم البيانية  |  استدعاء وظائف Kutools...
الميزات الشعبية: البحث عن التكرارات أو تمييزها أو تحديدها   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |   جولة بدون صيغة 
سوبر بحث: معايير متعددة VLookup    VLookup ذات القيمة المتعددة  |   VLookup عبر أوراق متعددة   |   بحث غامض ....
قائمة منسدلة متقدمة: إنشاء القائمة المنسدلة بسرعة   |  القائمة المنسدلة التابعة   |  قائمة منسدلة متعددة التحديد ....
مدير العمود: إضافة عدد محدد من الأعمدة  |  نقل الأعمدة  |  تبديل حالة رؤية الأعمدة المخفية  |  مقارنة النطاقات والأعمدة 
الميزات المميزة: التركيز على الشبكة   |  عرض تصميم   |   شريط الفورمولا الكبير    مدير المصنفات والأوراق   |  مكتبة الموارد (النص السيارات)   |  منتقي التاريخ   |  اجمع أوراق العمل   |  تشفير/فك تشفير الخلايا    إرسال رسائل البريد الإلكتروني عن طريق القائمة   |  سوبر تصفية   |   مرشح خاص (تصفية غامق / مائل / يتوسطه خط ...) ...
أفضل 15 مجموعة أدوات12 نص الأدوات (إضافة نص, إزالة الأحرف، ...)   |   +50 رسم الأنواع (مخطط جانت، ...)   |   40+ عملي الصيغ (احسب العمر على أساس تاريخ الميلاد، ...)   |   19 إدخال الأدوات (أدخل رمز الاستجابة السريعة, إدراج صورة من المسار، ...)   |   12 تحويل الأدوات (أرقام إلى كلمات, نتيجة تحويل عملة، ...)   |   7 دمج وتقسيم الأدوات (الجمع بين الصفوف المتقدمة, تقسيم الخلايا، ...)   |   ... و اكثر

عزز مهاراتك في Excel باستخدام Kutools for Excel، واختبر كفاءة لم يسبق لها مثيل. يقدم Kutools for Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت.  انقر هنا للحصول على الميزة التي تحتاجها أكثر...

الوصف


يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
Comments (36)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Bagaimana caranya menghilangkan header dari tiap-tiap file csv yang terbuka dalam worksheetnya
terima kasih
This comment was minimized by the moderator on the site
Hi there,this is a great tool, but I want to import the various XMl-Files into separate TAB-sheets. Is this possible as the XML's have different header ?
This comment was minimized by the moderator on the site
HelloThe instructions for importing multiple xmls into one tab of an excel document works but was wondering how to get it to line up the columns. My xmls don't all have the same tags. They are set up such that if the xml had no data for some headers(tags) then the header is missing from that xml. Is there a way to get the xmls to import so the same headers from each xml and associated data fall into the same column of excel?
This comment was minimized by the moderator on the site
Hi Experts

I am using the above code for importing multiple xml files into 1 worksheet using VBA however issue i am facing is when rows count reaches 650000 in a worksheet then this code doesn't process rest of the xml files in the folder. It gives an error "no files.xml". Require your kind support
This comment was minimized by the moderator on the site
Hi Team

I am using the code for importing Multiple XML files into single sheet with VBA however issue i am facing is when rows count reaches approximately 650000, then it doesn't processes rest of the xml files in the folder and gives an error that no xml files. Need your support to increase this count.
This comment was minimized by the moderator on the site
Hi, is there any way to import multiple csv files with semicolon as separator? Thank you!
PS Nice article!
This comment was minimized by the moderator on the site
Hello - I've used your VBA codes to extract data from multiple CSV files to excel file (the code on this page) and convert csv files to excel files ( this one: https://www.extendoffice.com/documents/excel/4615-excel-batch-convert-csv-to-xls-xlsx.html), with great results. They helped me save a lot of time.

However, I notice a common problem with both of these types of codes. To clarify, my system is set up to use the European standards for dates, while some of the CSV files I received for my work contain dates in US standards. The first problem is, when I extract or convert data from a CSV file that contains dates in US format, all of those dates are reversed (matching the EU standards used by my system). This is great but it also caused me troubles since I didn't know the codes would reverse the dates for me, so I went on ahead and did the same thing again. The second problem is, for the CSV files that contain dates already in the same format as the one used by my system (EU standards), only the ambiguous dates are reversed (i.e 04/05/2019 - 05/04/2019), while the ones that are too obvious, remain unchanged (i.e 30/04/2019).

What I would like the codes to do, is the exact same thing as they are shown here, only that they should copy and paste the data (especially dates) in the exact formats used in the original files. This would help prevent any possible confusions and mistakes. I would like to learn VBA so I can one day write my own codes, but for now, I'm not even able to modify parts of the existing codes to suit my needs. So if you can help, please tell me where I should put the modified codes (that you come up with) to the existing codes. I appreciate all feedback & support I can get. Thank you all!
This comment was minimized by the moderator on the site
Hi Marshall, in the Workbooks.Open method, add in the option Local:=True.

i.e.
Set xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
This comment was minimized by the moderator on the site
Hi Robert,
It's me again. It took me a while to actually have the time to figure out which part of the code the "Local:True" part should be added to. The result turned out great as the dates are no longer reversed. Thank you!
For anyone having the same problem, just change this line:
Set xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)

To this:
Set xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
This comment was minimized by the moderator on the site
Thank you very much Robert. Sorry I couldn't reply to you any earlier. I didn't get any notification until now. I will try this out and come back to you later to let you know if this works.
This comment was minimized by the moderator on the site
Hi - I'm using the import all csv files into one file listed above "Import Multiple Csv Files From A Folder Into A Single Sheet With VBA"- i'd like to define the folder it collects the data from without having to manually choose it. Can this be done? thanks - SW.
This comment was minimized by the moderator on the site
Hi, Scott W, I found a VBA code may can help you.
Option Explicit

Sub ImportCSVsWithReference()
'Author: Jerry Beaucaire
'Date: 10/16/2010
'Summary: Import all CSV files from a folder into a single sheet
' adding a field in column A listing the CSV filenames

Dim wbCSV As Workbook
Dim wsMstr As Worksheet: Set wsMstr = ThisWorkbook.Sheets("Sheet1")
Dim fPath As String: fPath = " C:\Users\DT168\Desktop\New folder\" 'path to CSV files, include the final \
Dim fCSV As String

If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Clear?") _
= vbYes Then wsMstr.UsedRange.Clear

Application.ScreenUpdating = False 'speed up macro

fCSV = Dir(fPath & "*.csv") 'start the CSV file listing

Do While Len(fCSV) > 0
'open a CSV file
Set wbCSV = Workbooks.Open(fPath & fCSV)
'insert col A and add CSV name
Columns(1).Insert xlShiftToRight
Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
'copy date into master sheet and close source file
ActiveSheet.UsedRange.Copy wsMstr.Range("A" & Rows.Count).End(xlUp).Offset(1)
wbCSV.Close False
'ready next CSV
fCSV = Dir
Loop

Application.ScreenUpdating = True
End Sub
This comment was minimized by the moderator on the site
How to eliminate duplicate header and CSV file name column. Please do help....I have gone through several articles, but unfortunately all give same result.
This comment was minimized by the moderator on the site
Thank you. This site has been a big help. I have one issue I cannot figure out. I am trying to import multiple csv files into an excel separate sheets in excel and have each sheet renamed after the file name of the csv file. I know this was covered below for a txt file but I am working with csv files. Thanks in advance.
This comment was minimized by the moderator on the site
Hi! I used the code to merge multiple XML files into one, but unfortunately the columns got messed up. The 5 files being merged all had the same format. Is there anyway to fix this? I also was wondering if there was a way to get rid of the headers that are duplicated when the files are merged. Thank you!
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations