วิธีส่งออกคอลัมน์ที่เลือกไปยังไฟล์ csv


24

ฉันต้องการส่งออกจำนวนคอลัมน์เฉพาะจาก excel ไปยังไฟล์. csv ผมมีประมาณ 10 คอลัมน์ชอบlname, fname, phone, address, emailและอื่น ๆ ฉันควรทำอย่างไรในการส่งออกเฉพาะคอลัมน์บางอย่างเช่นlname, emailและอื่น ๆ ?

คำตอบ:


23

ทำในวิธีง่าย ๆ : -

  1. ใช้การต่อข้อมูล 10 คอลัมน์

    =CONCATENATE(A1,",",B1,",",C1,",",D1,",",E1,",",F1,",",G1,",",H1,",",I1,",",J1)
    
  2. ลากรายการท้ายแถวสุดท้ายของคุณ

  3. คัดลอกคอลัมน์ผลลัพธ์
  4. วางไว้ในแผ่นจดบันทึก
  5. บันทึกเป็น.csvรูปแบบไฟล์

CONCATENATE ใช้งานได้ดีมากสำหรับฉัน ขอบคุณมาก.
Nedim Šabić

3
ง่าย ... เว้นแต่จะพบคำพูดซ้ำในคอลัมน์ใด ๆ ของคุณ ...
อธิการ

คุณไม่ต้องแยกองค์ประกอบที่ต่อกันกับอัฒภาคหรือไม่? = CONCATENATE (A1; " "; B1;" "; C1;" "; D1;" "; E1;" "; F1;" "; G1;" "; H1;"" ; I1; ","; J1)
mabho

9

เลือกคอลัมน์แรกที่คุณต้องการ จากนั้นในขณะที่กดค้างไว้<Ctrl>ให้เลือกคอลัมน์ที่เหลือที่คุณต้องการ คัดลอกสิ่งที่คุณเลือกและวางลงในสมุดงานใหม่ บันทึกสมุดงานใหม่เป็นไฟล์. csv

หากคุณกำลังจะทำเช่นนี้บ่อยบันทึกแมโครของขั้นตอนของคุณ นี่คือแมโครที่บันทึกจากการทดสอบของฉัน ในตัวอย่างของฉันคอลัมน์ A คือชื่อและคอลัมน์ E คืออีเมล ฉันยังแก้ไขแมโครด้วยชื่อไฟล์ SaveAs จะรวมวันที่ปัจจุบัน


ฉันจะแสดงตัวอย่างแมโคร แต่ไม่ว่าด้วยเหตุผลใดข้อผิดพลาดของ superuser จะปรากฏขึ้นเมื่อฉันคลิกบันทึกการแก้ไข ฉันจะลองอีกครั้งในภายหลัง


4

นี่คือโซลูชันที่มีเทคโนโลยีต่ำ:

  1. บันทึกสำเนาทั้งแผ่นของคุณเป็น. csv
  2. ขณะที่ยังเปิดอยู่ใน Excel ให้ลบคอลัมน์ที่คุณไม่ต้องการ
  3. บันทึก

3

ฉันเขียนโซลูชัน VBA ของตัวเองเป็นส่วนเสริม มีให้ที่นี่ใน GitHub

มุมมองตัวอย่าง (คลิกที่ภาพเพื่อดูขนาดใหญ่ขึ้น):

สกรีนช็อตของแบบฟอร์มเครื่องมือ

ขั้นตอนการใช้งานคือ:

  • ติดตั้ง Add-in
  • โหลดแบบฟอร์ม ( Ctrl+ Shift+ Cได้รับมอบหมายในขณะนี้เพื่อแสดงแบบฟอร์ม)
  • เน้นช่วงที่คุณต้องการส่งออก
  • เลือกโฟลเดอร์ส่งออก
  • ป้อนชื่อไฟล์รูปแบบตัวเลขและตัวคั่นที่ต้องการ
  • เลือกว่าจะผนวกหรือเขียนทับ
  • คลิก 'ส่งออก'

แบบฟอร์มนั้นไม่มีรูปแบบดังนั้นคุณสามารถปล่อยให้มันเปิดในขณะที่คุณเลือกช่วงที่แตกต่างกันหรือนำทางไปยังแผ่นงานแบบแผ่นต่อแผ่นหรือสมุดงานแบบสมุดงาน หากต้องการทราบว่า "at symbol" ( @) ทำหน้าที่เป็นตัวแทนของรูปแบบตัวเลข 'ทั่วไป' ของ Excel สำหรับการดำเนินการแสดงผลเช่นนี้

เนื้อหาC:\test.csvจากตัวอย่างด้านบน:

13,14,15
14,15,16
15,16,17

2
Sub ExportSelectionAsCSV()
    ' MS Excel 2007
    ' Visual Basic for Applications
    '
    ' Copies the selected rows & columns
    ' to a new Excel Workbook. Saves the new 
    ' Workbook as Comma Separated Value (text) file.
    '
    ' The active workbook (the 'invoking' workbook - the 
    ' one that is active when this subroutine is called) 
    ' is unaffected.
    '
    ' Before returning from the subroutine, the invoking workbook
    ' is "set back to" (restored as) the active workbook.
    '
    ' Note: target filename is hard coded (code is simpler that way)

    ' Suspends screen updating (until ready to return)
    ' Warning: ScreenUpdating MUST be re-enabled before
    ' returning from this subroutine.
    '
    ' Note: Step through this subroutine line-by-line to prove
    ' to yourself that it is performing as promised.
    ' (Please step through the code at least once - use F8)
    Application.ScreenUpdating = False

    ' Gets the name of *this (the invoking) workbook
    ' so *this workbook can again be set active
    ' at the end of this subroutine.
    Dim CurrentFileName As String
    CurrentFileName = ActiveWorkbook.Name
    Debug.Print "Active File: " + CurrentFileName

    ' Copies the selected cells (to the clipboard).
    ' Precondition: Cells must be selected before 
    ' calling this subroutine.
    Selection.Copy

    ' Instantiates a (new) object instance of type Excel workbook.
    ' Side-effect: The new workbook instance is now
    ' the 'active' workbook. 
    Workbooks.Add Template:="Workbook"

    ' Selects the first cell of the 
    ' first worksheet of the new workbook.
    Range("A1").Select

    ' Pastes the clipboard contents to the new worksheet
    ' (of the new workbook)
    ActiveSheet.Paste

    ' Writes the new (active) Excel workbook to file.
    ' The format is Comma Separated Value
    ActiveWorkbook.SaveAs Filename:= _
    "C:\temp\data.csv" _
    , FileFormat:=xlCSV, _
    CreateBackup:=False

    ' Gets the filename of the new (active) workbook
    ' so the name can be logged.
    Dim NewFileName As String
    NewFileName = ActiveWorkbook.Name
    Debug.Print "Active File: " + NewFileName

    ' Closes the new CSV file
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
    Application.DisplayAlerts = True

    ' Clears the clipboard contents.
    Application.CutCopyMode = False

    ' Restores the invoking workbook as the active
    ' Excel workbook. 
    Workbooks(CurrentFileName).Activate
    Range("A1").Select

    ' Re-Enables Excel screen display.
    Application.ScreenUpdating = True
End Sub


1

หากคุณเปิดไฟล์ในเครื่องมือแก้ไขของ Ronคุณสามารถซ่อนคอลัมน์ที่คุณไม่ต้องการได้จากนั้นส่งออก 'มุมมอง' ที่เกิดขึ้นเป็นไฟล์ Excel หรือรูปแบบอื่น ๆ ยังดีกว่าคุณสามารถบันทึกมุมมองสำหรับใช้ในอนาคต เร็วมากง่ายมาก


1

อีกวิธีหนึ่ง:

  1. เลือกเซลล์ที่คุณต้องการส่งออก
  2. ล้อมรอบตารางเซลล์ (เช่นกด Control + T บน Windows)
  3. เรียกใช้แมโคร ExportTable

บันทึกตารางบนแผ่นงานที่ใช้งานเป็น CSV ใหม่ (โดยเปิดสมุดงานใหม่และบันทึกจากที่นั่นโดยใช้ชื่อตารางเป็นชื่อไฟล์)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.