คุณจะบังคับให้ excel เสนอราคาคอลัมน์ทั้งหมดของไฟล์ CSV ได้อย่างไร


89

Excel จะใส่เครื่องหมายคำพูดไว้รอบ ๆ บางฟิลด์ฉันจะบังคับให้ excel บันทึกไฟล์ CSV ด้วยเครื่องหมายคำพูดรอบ ๆ ทุกคอลัมน์ได้อย่างไร

คำตอบ:


44

หากคุณเปิดไฟล์ XLS ใน LibreOffice หรือ OpenOffice จากนั้น Save As .... และเลือก Text CSV มันจะสร้างไฟล์ CSV ที่มีเครื่องหมายคำพูดเป็นตัวคั่นด้วย เช่น: "Smith", "Pete", "Canada" "Jones", "Mary", "England"

เพียงทำเครื่องหมายที่ช่อง "อ้างอิงเซลล์ข้อความทั้งหมด": ส่งออกเป็น CSV ด้วย LibreOffice

เพื่ออ้างอิงฟิลด์ตัวเลขให้เน้นช่วงเซลล์ของคุณและเปลี่ยนการจัดรูปแบบเซลล์เป็น "ข้อความ" ก่อนการบันทึก


7
แม้ว่าจะไม่ใช่คำตอบสำหรับคำถามเฉพาะมันเป็นวิธีแก้ปัญหาที่ง่ายกว่าการพยายามให้ลูกค้าใช้แมโคร!
Duncanmoo

ฉันเบื่อที่จะใช้วิธีนี้ทุกวันนั่นเป็นสาเหตุที่ฉันมาที่นี่
vladkras

ฉันคิดว่านี่เป็นวิธีที่ง่ายและสะดวกที่สุดเนื่องจาก OpenOffice เป็นซอฟต์แวร์พกพา คุณไม่ต้องติดตั้งอะไรหรือเขียนรหัสใด ๆ
Scott Chu

คำตอบที่ดีที่สุดที่เคย !!
rajya vardhan

20
ไม่ใช่คำตอบเลย คำถามนี้เกี่ยวกับ MS Excel อย่างชัดเจน
vladkras

43

หน้านี้ยังมีทางออกที่มาจากปากม้า:

http://support.microsoft.com/kb/291296/en-us

หากลิงก์ลดลงหัวข้อที่จะค้นหาคือ:

"ขั้นตอนการส่งออกไฟล์ข้อความที่มีทั้งเครื่องหมายจุลภาคและเครื่องหมายคำพูดคั่นใน Excel" และ / หรือ "Q291296"

tl; dr: ใช้มาโคร


10
สิ่งที่อาจคุ้มค่ากับการสังเกตคือแมโครนั้นกำลังใช้ Integer สำหรับค่าแถวและคอลัมน์ คุณจะได้รับข้อผิดพลาดหากพยายามส่งออกมากกว่า 32768 แถว ตัวอย่างเช่นการเปลี่ยนประเภทข้อมูลเป็น Long จะช่วยแก้ไขปัญหานั้นได้
ด่าน

จุดที่ดี (+1) ดูเหมือนว่าพวกเขาจะไม่ได้อัปเดตโค้ดเนื่องจากมันถูกเขียนขึ้นครั้งแรกสำหรับ Excel เวอร์ชันที่มีขนาดสูงสุดเพียง 32768 แถว
sahmeepee

9
ฉันใช้เสรีภาพในการสร้างส่วนสำคัญด้วยแมโครนี้และแก้ไขสองสามอย่าง: gist.github.com/fabriceleal/7803969
นิทาน

@fableal ตัวอย่างข้อมูลที่ยอดเยี่ยม! สมควรที่จะได้รับคำตอบ
xiankai

Office 2010 ยังล้นในแถวที่เลือกจำนวนมากตามที่ @sahmeepee พูดถึง
access_granted

18

ฉันพบโซลูชันที่ง่ายนี้:

  1. ไฮไลต์เซลล์ที่คุณต้องการเพิ่มเครื่องหมายคำพูด
  2. คลิกขวาแล้วไปที่: Format Cells → Tab: Number → Category: Custom
  3. วางสิ่งต่อไปนี้ลงในฟิลด์Type : "''"@"''"(ดูรายละเอียดด้านล่าง)
  4. คลิก“ ตกลง”

สตริงที่คุณกำลังวางอยู่"''"@"''"ซึ่งเป็นเครื่องหมายคำพูดคู่, อัญประกาศเดี่ยว, อัญประกาศคู่, เครื่องหมายอัญประกาศคู่, @ สัญลักษณ์, เครื่องหมายคำพูดคู่, อัญประกาศเดี่ยว, อัญประกาศเดี่ยว, อัญประกาศคู่

แก้ไขสำหรับ Excel 2010 จากข้อมูลที่พบที่นี่


Hmmm .. ที่ให้ฉัน '' รายการ '' (สองคำพูดเดียว) มากกว่า "(อ้างสองครั้ง) จากนั้นฉันก็ค้นหาและแทนที่เพื่อแก้ไขมัน
Clay Nichols

6
รูปแบบควรเป็น \” @ \”
มนัส

คำตอบนี้เป็นคำตอบที่สมบูรณ์แบบหากคุณใช้ LibreOffice - ไม่มีตัวเลือก "ข้อความ" ทั้งหมดในเมนูรูปแบบ> รูปแบบตัวเลขแม้ว่าเอกสารของพวกเขาจะยืนยันว่ามีตัวเลือกอยู่ หากคุณคลิกขวาที่ "Format Cells" ใน LibreOffice คุณจะได้รับรายการตัวเลือกการตีความเซลล์แบบสมบูรณ์ - ไม่ใช่ตัวเลือก 6 ตัวเลือกที่ค่อนข้างไร้ประโยชน์ที่แสดงในรายการแบบหล่นลง
1owk3y

คำตอบของ @ manat แต่ไม่มีเครื่องหมายอัญประกาศ:\"@\"
MSC

12

Powershell ปรากฏขึ้นเพื่อถ่ายโอนข้อมูลอย่างถูกต้อง ดังนั้นสิ่งที่ชอบ

ค้นหา powershell.exe บนเครื่อง windows ถ้าคุณไม่รู้จัก powershell

import-csv C:\Temp\Myfile.csv | export-csv C:\Temp\Myfile_New.csv -NoTypeInformation -Encoding UTF8

หวังว่าจะช่วยใครซักคน


เพื่อความสะดวก Shift + คลิกขวาในโฟลเดอร์ที่ CSV ของคุณถูกบันทึกและเลือกหน้าต่าง PowerShell เปิดที่นี่ซึ่งทำให้คำสั่งง่ายimport-csv Myfile.csv | export-csv Myfile_quoted.csv -NoTypeInformation -Encoding UTF8ขึ้น อย่าลืมใช้เครื่องหมายคำพูดเดี่ยวรอบชื่อไฟล์ด้วยช่องว่างหรืออักขระพิเศษอื่น ๆ
วอลล์

4

นี่เป็นวิธีที่ง่ายที่สุดสำหรับฉัน: ฉันนำเข้าสเปรดชีตไปยัง Access 2010 และส่งออกจากที่นั่นเป็นไฟล์ข้อความที่มีการคั่น มอบเครื่องหมายอัญประกาศให้ฉันรอบ ๆ ทุ่งของฉัน ใช้เวลาน้อยกว่าหนึ่งนาทีสำหรับ 42k แถวตอนนี้ที่ฉันมีขั้นตอนลง


ข้อเสียเปรียบเพียงอย่างเดียวก็คือถ้าฟิลด์นั้นมีเครื่องหมายคำพูดคู่
access_granted

3

ฉันได้พบวิธีแก้ไขอื่นซึ่งไม่เกี่ยวข้องกับ VBA Macro แต่ต้องใช้ Notepad ++ หรือโปรแกรมแก้ไขข้อความแบบแมโครที่คล้ายกัน

ส่งออกไฟล์ของคุณเป็นข้อความที่แยกแท็บจากนั้นเปิดไฟล์ที่ส่งออกภายใน Notepad ++ แทนที่อินสแตนซ์ทั้งหมดของอักขระ 'แท็บ' ด้วยข้อความ "," (เช่นตัวอักษร double-quote, เครื่องหมายจุลภาค, เครื่องหมายคำพูดคู่) จากนั้นใช้แมโครอื่นเพื่อนำหน้าและต่อท้ายแต่ละบรรทัดของข้อความด้วยเครื่องหมายคำพูดคู่

แฮ็คเล็กน้อย แต่ฉันพบว่าเร็วกว่าการใช้มาโคร VBA


1
หากคุณต้องการทำเช่นนั้นใน Notepad ++ คุณจะใช้การค้นหานิพจน์ปกติและแทนที่แล้วดีที่สุดจากนั้นคุณสามารถทำการดำเนินการแทนที่ทั้ง 3 (เริ่มต้นของบรรทัดแท็บและจุดสิ้นสุดของบรรทัด) ในที่เดียว
sahmeepee

3

ไฮไลต์เซลล์ที่คุณต้องการเพิ่มเครื่องหมายคำพูด ไปที่รูปแบบ -> เซลล์ -> คัดลอก / วางเองต่อไปนี้ลงในฟิลด์ประเภท: \” @ \” คลิก“ ตกลง” มีความสุขที่คุณไม่ได้ทำด้วยมือทั้งหมด

จาก: http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-excel-automatically/


1
วิธีนี้ใช้ได้ผลดีสำหรับอัลฟา - คุณจะต้อง \” # \” สำหรับคอลัมน์ที่มีค่าตัวเลข
DropHit

ระหว่าง \ "@ \" และ \ "# \" ได้ผล แต่ฉันยังต้องแก้ไขส่วนหัวใน Notepad ++ สำหรับคอลัมน์ตัวเลขแล้วแทนที่ "" "ทั้งหมดด้วย" ช่างเจ็บปวดเหลือเกิน
Gary

ยังไม่ได้ลอง .. แต่ถ้าคุณสร้าง csv คุณไม่สามารถเปลี่ยนคอลัมน์เป็นข้อความและใช้ \ "@ \"
Steve Coleman

2
  1. ไฮไลต์เซลล์ที่คุณต้องการเพิ่มเครื่องหมายคำพูด
  2. คลิกขวาแล้วไปที่: Format Cells → Tab: Number → Category: Custom
  3. วางสิ่งต่อไปนี้ลงในฟิลด์ Type: "''"@"''"(ดูรายละเอียดด้านล่าง)
  4. คลิก“ ตกลง”
  5. เปิดไฟล์. csv ด้วย Notepad (หรือเทียบเท่า)
  6. แทนที่ทั้งหมด' '(คำพูดเดี่ยวซ้ำ) ด้วย"( เครื่องหมายคำพูดคู่)
  7. แทนที่ทั้งหมด ;
  8. บันทึกไฟล์. csv ที่แก้ไขแล้ว

1

หากคุณใช้ Notepad ++ เพื่อเพิ่มเครื่องหมายคำพูดที่จุดเริ่มต้นของแต่ละบรรทัดเพียงเปิดไฟล์ csv ที่ส่งออกวางเคอร์เซอร์ของคุณที่บรรทัดที่ 1 คอลัมน์ที่ 1 จากนั้นคลิกเมนูแก้ไข / แก้ไขคอลัมน์ ...ในฟิลด์ ' ข้อความที่จะแทรก ' ป้อน"จากนั้นจุดเริ่มต้นของแต่ละบรรทัดจะมีเครื่องหมายคำพูดจากนั้นคุณสามารถใช้นิพจน์ทั่วไปเพื่อค้นหา / แทนที่แท็บทั้งหมด


0

สำหรับผู้ใช้ Windows

  1. "บันทึกเป็น" ไฟล์ Excel เป็น CSV
  2. เปิดไฟล์ที่บันทึกด้วย Mircrosoft Works Spreadsheet
  3. "บันทึกเป็น" สเปรดชีตเป็น CSV
  4. ฟิลด์ที่ไม่ใช่ตัวเลขทั้งหมดจะมี "ล้อมรอบ"

โปรดทราบว่านี่ไม่ใช่คำพูดของแป้นพิมพ์เดียวกันซึ่งมีความหลากหลายไปข้างหน้าและย้อนกลับ
ดังนั้นหากใช้ CSV เพื่อโหลดลงในตาราง Mysql ให้ตัดและวางลงในพารามิเตอร์ ENCLOSED มิฉะนั้นคุณจะสงสัยว่าทำไมคุณถึงได้รับข้อความ#1083 - Field separator argument is not what is expected


3
Mircrosoft ทำงาน <-? คุณแน่ใจหรือไม่
nixda

0

ฉันใช้วิธีการด้านล่างเพื่อใช้สามคอลัมน์ใน Excel และสร้างสตริงในคอลัมน์ที่สี่

=CHAR(34)&A2&CHAR(34)&","&CHAR(34)&B2&CHAR(34)&","&CHAR(34)&C2&CHAR(34)&""

ปัญหาของฉันกับ"''"@"''"วิธีการคือคอลัมน์ที่สองของข้อมูลของฉันคือตัวเลข"''"@"''"วิธีการที่ไม่ได้ทำอะไรกับตัวเลข บางครั้งคอลัมน์ที่สองว่างเปล่า แต่ฉันต้องการตรวจสอบให้แน่ใจว่ามันถูกแสดงในไฟล์ข้อความสุดท้าย


0

อีกวิธีหนึ่งถ้าคุณมีการเข้าถึง MS (ฉันมี ver 2007) นำเข้าไฟล์จากนั้นส่งออกเป็นไฟล์ข้อความ จากนั้นเปลี่ยน. txt เป็น. csv หมายเหตุฟิลด์ตัวเลขทั้งหมดจะไม่มีเครื่องหมายคำพูดคู่ล้อมรอบดังนั้นถ้าคุณต้องการอัญประกาศล้อมรอบตัวเลขด้วยเช่นกันในขณะที่ Access จะเปลี่ยนฟิลด์จากฟิลด์ตัวเลขเป็นฟิลด์ข้อความ


0

การเอ็กซ์พอร์ตคอมม่าที่คั่นและสตริงที่อ้างถึงสามารถทำได้ด้วย Excel 2016 และ Notepad เท่านั้นโดยใช้สำเนาของข้อมูลสูตรการส่งออกการเปลี่ยนแปลงคุณสมบัติไฟล์การแทนที่ใน Notepad การบันทึกไฟล์ที่ส่งออกและการล้างข้อมูล แต่ละขั้นตอนง่าย ๆ ในรายละเอียด:

  1. คัดลอกคอลัมน์ที่จะส่งออกไปยังแผ่นกลางใหม่เพื่อรักษาต้นฉบับและสำรองไว้พร้อมกับแผ่นใหม่ที่จะถูกลบในภายหลังเพื่อออกจากสเปรดชีตเหมือนเดิม

  2. ใส่มิฉะนั้นจะไม่เกิดขึ้นตัวละครพูด '#' หรือ ';-)' ที่ปลายแต่ละด้านของสตริงในคอลัมน์พูดว่า A กับสูตร=concat("#",trim(A1),"#")วางสูตรในแถวทั้งหมดของคอลัมน์อื่น

    • คอลัมน์ที่อยู่ติดกันสามารถทำได้พร้อมกัน แต่ไม่ต้องอ้างอิงตัวเลขเพื่อหลีกเลี่ยงการอ่านเป็นสตริง
    • การตัดแต่งหลีกเลี่ยงช่องว่างต่อท้ายที่สามารถเรียกใช้พฤติกรรมการส่งออกที่ไม่ชำนาญ
    • สตริงไม่ควรมี "" "ซึ่งอาจรบกวนการนำเข้า
  3. คัดลอกคอลัมน์ใหม่กลับไปที่ A ... โดยใช้วิธี '123' เพื่อไม่ให้มีสูตร

  4. ส่งออกชีตเป็นไฟล์ CSV เพื่อใส่เครื่องหมายจุลภาคระหว่างฟิลด์รวมถึงตัวเลข

  5. เปลี่ยนคุณสมบัติ file.csv เพื่อให้สามารถเปิดได้ด้วย Notepad

  6. ใช้ Notepad เพื่อแทนที่อักขระที่กำหนดเองด้วย '"'

  7. ในขณะที่ดูเหมือนว่าเหมาะสมที่จะใช้ "เป็นอักขระตามอำเภอใจก็ต้องใส่ในเซลล์อื่นพูด '$ A $ 50' แล้วสิ่งที่ปรากฏในการส่งออกคือ '' '' '' ซึ่งเห็นได้ชัดว่าไม่สะดวกอีกอย่างหนึ่ง

  8. ในแผ่นจดบันทึกไฟล์ควรถูกบันทึกเป็นไฟล์ * .txt เพื่อนำเข้าและลบไฟล์ * .csv ระดับกลาง

  9. ด้วยการล้างภารกิจแผ่นงานสเปรดชีตพิเศษสำเร็จ

บางทีเครื่องมือการส่งออกของ Access สามารถฝังตัวใน Excel ได้ วิธีทั่วไปเพิ่มเติมในโปรแกรมเหล่านั้นที่ใช้การตัดและวางจะต้องมีตัวเลือกการวางรวมถึงตัวเลือกของวิธีการตีความโครงสร้างผลลัพธ์และให้ตัวคั่น


0

คำตอบของ Michael ในวันที่ 21 สิงหาคม 2014นั้นมีประโยชน์จริงๆ อย่างไรก็ตามฉันต้องทำขั้นตอนเพิ่มเติมหรือสอง:

  1. เปิดไฟล์. csv ด้วย Notepad (หรือเทียบเท่า)
  2. แทนที่ '' (เครื่องหมายคำพูดเดี่ยวซ้ำทั้งหมด) ด้วย "(เครื่องหมายคำพูดคู่)
  3. แทนที่ทั้งหมด ; (ใช้เป็นตัวคั่นใน Excel เวอร์ชันภาษาเยอรมัน) ด้วย,
  4. บันทึกไฟล์. csv ที่แก้ไขแล้ว

ไม่มีคำอธิบายสำหรับ downbvote? พาร์สำหรับหลักสูตร แต่คนอื่นคาดหวังที่จะเรียนรู้อย่างไร คุณอาจคิดว่าเห็นได้ชัดว่ามีอะไรผิดปกติ Mr. Downvoter แต่ทุกคนอาจไม่เห็น เรากำลังพยายามสร้างชุมชนที่นี่และคุณไม่ได้ช่วย
Mawg

-1

นี่คือสูตรของฉัน ฉันเกลียดการทำเช่นนี้ แต่ฉันไม่มีวิธีที่ดีกว่า ในกรณีของฉันฉันไม่ได้รับเครื่องหมายคำพูดรอบฟิลด์ใด ๆ ฉันต้องใช้การเข้ารหัส UTF-8 และ; แทนที่จะเป็นแท็บดังนั้นนี่คือสิ่งที่ฉันทำ

หมายเหตุ:เนื่องจากความสามารถในการใส่เครื่องหมายคำพูดคู่ล้อมรอบด้วยเครื่องหมายคำพูดเดี่ยวและอื่น ๆ ฉันจึงใช้ "การจัดรูปแบบแป้นพิมพ์" โดยมีจุดประสงค์เพื่อระบุทั้งการกดแป้นพิมพ์และอักขระและสตริงตามตัวอักษร

  1. แทรกคอลัมน์ใหม่ก่อนหน้าใด ๆ ในสเปรดชีต Excel ของคุณ (คลิกที่ชื่อของคอลัมน์ที่ 1 คอลัมน์ทั้งหมดจะถูกเลือกคลิกขวาเลือก "แทรก")
  2. เลือกช่วงทั้งหมดของเซลล์ว่างจากคอลัมน์ใหม่ (จะถูกเลือกตามค่าเริ่มต้น) บนสนามสูตรแทรกสิ่งที่คุณต้องการ: xxxยกตัวอย่างเช่น กดCTRL+ enterเพื่อเติมทั้งคอลัมน์ด้วยค่าเดียวกัน
  3. บันทึกไฟล์เป็น Unicode Text (* .txt)
  4. เปิดไฟล์ใน Notepad ++
  5. กดCTRL+ fเพื่อเปิดการค้นหา / แทนที่
  6. ไปที่แท็บแทนที่
  7. ใน "โหมดการค้นหา" เลือก "ขยาย (\ n, \ r, \ t, \ 0, \ x ... )"
  8. ในช่อง "ค้นหา" ป้อนxxxการtabกดแป้นบวก
  9. ในฟิลด์ "แทนที่" ป้อน"(เครื่องหมายคำพูดคู่)
  10. กดแทนที่ทั้งหมด
  11. ในช่อง "ค้นหา" ให้tabกดแป้นพิมพ์
  12. ใน "แทนที่" หนึ่งป้อน";"(เครื่องหมายคำพูดคู่, อัฒภาค, เครื่องหมายคำพูดคู่)
  13. กดแทนที่ทั้งหมด
  14. เกือบเสร็จแล้ว สำหรับเครื่องหมายคำพูดคู่สุดท้ายป้อน\rในฟิลด์ "ค้นหา" และ"\r"(เครื่องหมายคำพูดคู่, เครื่องหมายทับขวา, เครื่องหมายคำพูดคู่) ใน "แทนที่" กดแทนที่ทั้งหมด
  15. ตราบใดที่คุณไม่ได้ใช้อักษรจีน ฯลฯ คุณสามารถเปลี่ยนการเข้ารหัสเป็น UTF-8 และบันทึกไฟล์อย่างปลอดภัย

-1

ฉันพบปัญหานี้หลายครั้ง นี่คือทางออกที่ง่ายที่สุดที่ฉันคิดไว้

  1. บันทึกไฟล์เป็น Excel
  2. นำเข้า Excel ลงในตาราง Access
  3. ส่งออกตารางจาก Access ไปยังไฟล์ข้อความ

การเข้าถึงจะช่วยให้คุณระบุการส่งออกตัวคั่นเป็นเครื่องหมายจุลภาคและช่องข้อความที่มีคุณสมบัติด้วยเครื่องหมายคำพูด ในตัวช่วยสร้างการส่งออกคุณสามารถระบุตัวคั่นหรืออักขระรอบ ๆ สตริงที่คุณต้องการ

คุณอาจต้องสร้างคิวรี Access เพื่อจัดเรียงฟิลด์ตามลำดับเฉพาะหรือซ่อนฟิลด์ auto-ID ที่เพิ่มโดย Access

นอกจากนี้ ... เมื่อส่งออกเป็น CSV อย่าเปิดใน Excel อีกครั้ง หากคุณต้องการดูผลลัพธ์ให้เปิดใน notepad Excel มีแนวโน้มที่จะยุ่งกับข้อมูลของ csv .... ฉันคิดว่ามันเป็นเขตข้อมูลที่เต็มด้วยศูนย์นำถ้าฉันจำอย่างถูกต้อง


สิ่งนี้ดูเหมือนจะซ้ำกันข้อมูลในคำตอบของ user326114
fixer1234

-1

ต่อไปนี้เป็นวิธีใช้แอป OpenOffice เพื่อใช้สเปรดชีต Excel และสร้างไฟล์ข้อความ (csv) พร้อมเครื่องหมายคำพูดรอบ ๆ ฟิลด์ข้อความ

เปิดไฟล์ Excel ด้วย OpenOffice จากนั้นทำตามขั้นตอนเหล่านี้:

ไฟล์> บันทึกเป็น

ระบุชื่อใหม่สำหรับไฟล์ที่คุณกำลังจะสร้าง

สำหรับประเภทไฟล์ให้เลือก "ทดสอบ CSV (.csv)"

เปิดช่องทำเครื่องหมาย "แก้ไขการตั้งค่าตัวกรอง"

คลิก "บันทึก"

เลือก "เก็บรูปแบบปัจจุบัน"

ตัวคั่นฟิลด์ควรเป็นเครื่องหมายจุลภาค:,

ตัวคั่นข้อความควรมีเครื่องหมายคำพูด: "

ทำเครื่องหมายที่ช่อง "อ้างอิงเซลล์ข้อความทั้งหมด"

คลิก "ตกลง"

สิ่งนี้ได้ผลสำหรับฉัน!

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