ฉันต้องการส่งออกจำนวนคอลัมน์เฉพาะจาก excel ไปยังไฟล์. csv ผมมีประมาณ 10 คอลัมน์ชอบlname
, fname
, phone
, address
, email
และอื่น ๆ ฉันควรทำอย่างไรในการส่งออกเฉพาะคอลัมน์บางอย่างเช่นlname
, email
และอื่น ๆ ?
ฉันต้องการส่งออกจำนวนคอลัมน์เฉพาะจาก excel ไปยังไฟล์. csv ผมมีประมาณ 10 คอลัมน์ชอบlname
, fname
, phone
, address
, email
และอื่น ๆ ฉันควรทำอย่างไรในการส่งออกเฉพาะคอลัมน์บางอย่างเช่นlname
, email
และอื่น ๆ ?
คำตอบ:
ทำในวิธีง่าย ๆ : -
ใช้การต่อข้อมูล 10 คอลัมน์
=CONCATENATE(A1,",",B1,",",C1,",",D1,",",E1,",",F1,",",G1,",",H1,",",I1,",",J1)
ลากรายการท้ายแถวสุดท้ายของคุณ
.csv
รูปแบบไฟล์เลือกคอลัมน์แรกที่คุณต้องการ จากนั้นในขณะที่กดค้างไว้<Ctrl>
ให้เลือกคอลัมน์ที่เหลือที่คุณต้องการ คัดลอกสิ่งที่คุณเลือกและวางลงในสมุดงานใหม่ บันทึกสมุดงานใหม่เป็นไฟล์. csv
หากคุณกำลังจะทำเช่นนี้บ่อยบันทึกแมโครของขั้นตอนของคุณ นี่คือแมโครที่บันทึกจากการทดสอบของฉัน ในตัวอย่างของฉันคอลัมน์ A คือชื่อและคอลัมน์ E คืออีเมล ฉันยังแก้ไขแมโครด้วยชื่อไฟล์ SaveAs จะรวมวันที่ปัจจุบัน
ฉันจะแสดงตัวอย่างแมโคร แต่ไม่ว่าด้วยเหตุผลใดข้อผิดพลาดของ superuser จะปรากฏขึ้นเมื่อฉันคลิกบันทึกการแก้ไข ฉันจะลองอีกครั้งในภายหลัง
นี่คือโซลูชันที่มีเทคโนโลยีต่ำ:
ฉันเขียนโซลูชัน VBA ของตัวเองเป็นส่วนเสริม มีให้ที่นี่ใน GitHub
มุมมองตัวอย่าง (คลิกที่ภาพเพื่อดูขนาดใหญ่ขึ้น):
ขั้นตอนการใช้งานคือ:
แบบฟอร์มนั้นไม่มีรูปแบบดังนั้นคุณสามารถปล่อยให้มันเปิดในขณะที่คุณเลือกช่วงที่แตกต่างกันหรือนำทางไปยังแผ่นงานแบบแผ่นต่อแผ่นหรือสมุดงานแบบสมุดงาน หากต้องการทราบว่า "at symbol" ( @
) ทำหน้าที่เป็นตัวแทนของรูปแบบตัวเลข 'ทั่วไป' ของ Excel สำหรับการดำเนินการแสดงผลเช่นนี้
เนื้อหาC:\test.csv
จากตัวอย่างด้านบน:
13,14,15
14,15,16
15,16,17
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
คุณสามารถทำสิ่งนี้ได้อย่างง่ายดายด้วยสคริปต์ PowerShell คุณสามารถใช้ฟังก์ชั่นได้รับ ExcelData นี้ข้อมูลโค้ด PowerShellและท่อผลผ่านเลือกวัตถุและสุดท้ายเพื่อการส่งออกและ Csv
หากคุณเปิดไฟล์ในเครื่องมือแก้ไขของ Ronคุณสามารถซ่อนคอลัมน์ที่คุณไม่ต้องการได้จากนั้นส่งออก 'มุมมอง' ที่เกิดขึ้นเป็นไฟล์ Excel หรือรูปแบบอื่น ๆ ยังดีกว่าคุณสามารถบันทึกมุมมองสำหรับใช้ในอนาคต เร็วมากง่ายมาก
อีกวิธีหนึ่ง:
บันทึกตารางบนแผ่นงานที่ใช้งานเป็น CSV ใหม่ (โดยเปิดสมุดงานใหม่และบันทึกจากที่นั่นโดยใช้ชื่อตารางเป็นชื่อไฟล์)