Làm thế nào để bạn buộc excel trích dẫn tất cả các cột của tệp CSV?


89

Excel chỉ đặt dấu ngoặc kép quanh các trường nhất định, làm cách nào để buộc excel lưu tệp CSV có dấu ngoặc kép quanh mỗi cột?

Câu trả lời:


44

Nếu bạn mở tệp XLS trong LibreScript hoặc OpenOffice, thì Lưu dưới dạng .... và chọn Văn bản CSV, nó sẽ tạo ra tệp CSV cũng bao gồm các trích dẫn dưới dạng dấu phân cách. Vd: "Smith", "Pete", "Canada" "Jones", "Mary", "England"

Chỉ cần chọn hộp "Trích dẫn tất cả các ô văn bản": Xuất sang CSV bằng LibreOffice

Để trích dẫn các trường số, hãy tô sáng phạm vi ô của bạn và thay đổi định dạng ô thành "văn bản" trước khi lưu.


7
Mặc dù không phải là một câu trả lời cho câu hỏi cụ thể nhưng đó là một cách giải quyết đơn giản hơn là cố gắng để khách hàng của tôi sử dụng macro!
Duncanmoo

Tôi mệt mỏi khi sử dụng phương pháp này mỗi ngày, đó là lý do tại sao tôi ở đây
vladkras

Tôi nghĩ rằng đây là giải pháp dễ dàng và thuận tiện nhất vì OpenOffice là một phần mềm di động. Bạn không phải cài đặt bất cứ thứ gì hoặc viết bất kỳ mã nào.
Scott Chu

câu trả lời hay nhất đến nay!!
rajya vardhan

20
Không một câu trả lời nào cả. Câu hỏi rõ ràng về MS Excel
vladkras

43

Trang này cũng có giải pháp đi thẳng từ miệng ngựa:

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

Nếu liên kết xuống cấp, chủ đề cần tìm là:

"Quy trình xuất tệp văn bản có cả dấu phẩy và dấu phân cách trong Excel" và / hoặc "Q291296"

tl; dr: sử dụng macro của họ


10
Một cái gì đó có thể đáng chú ý là macro đang sử dụng Integer cho các giá trị hàng và cột. Bạn sẽ gặp lỗi khi cố gắng xuất lớn hơn 32768 hàng. Thay đổi các kiểu dữ liệu thành Long, ví dụ, sẽ khắc phục vấn đề đó.
Dan

Điểm tốt (+1). Có vẻ như họ chưa cập nhật mã kể từ lần đầu tiên được viết cho các phiên bản Excel chỉ có tối đa 32768 hàng.
sahmeepee

9
Tôi đã tự do tạo ra một ý chính với macro này và một vài cách khắc phục: gist.github.com/foveneleal/7803969
fottaeal

@fableeal Đoạn trích tuyệt vời! Nó xứng đáng được trong một câu trả lời.
xiankai

Office 2010, vẫn tràn ngập số lượng lớn các hàng được chọn, như @sahmeepee đã đề cập.
access_granted

18

Tôi tìm thấy giải pháp dễ dàng này:

  1. Đánh dấu các ô bạn muốn thêm dấu ngoặc kép.
  2. Nhấp chuột phải và đi đến: Định dạng ô → Tab: Số → Thể loại: Tùy chỉnh
  3. Dán phần sau vào trường Loại : "''"@"''"(xem chi tiết bên dưới)
  4. Nhấp vào

Chuỗi bạn đang dán là "''"@"''"trích dẫn kép, trích dẫn đơn, trích dẫn đơn, trích dẫn kép, biểu tượng @, trích dẫn kép, trích dẫn đơn, trích dẫn đơn, trích dẫn kép.

Đã chỉnh sửa cho Excel 2010 từ thông tin tìm thấy ở đây .


Hmmm .. điều đó đã cho tôi '' ITEM '' (hai trích dẫn đơn) thay vì "(một trích dẫn kép). Tôi vừa mới thực hiện tìm kiếm và thay thế để sửa nó.
Clay Nichols

6
Định dạng nên có \ \ @ @
manat

Câu trả lời này thực sự là một câu trả lời hoàn hảo nếu bạn đang sử dụng LibreOffice - nó hoàn toàn thiếu tùy chọn "văn bản" trong menu Định dạng> Định dạng Số, mặc dù tài liệu của họ khẳng định tùy chọn có ở đó. Nếu bạn nhấp chuột phải vào "Định dạng ô" trong LibreOffice, bạn sẽ được cung cấp một danh sách ĐẦY ĐỦ các tùy chọn giải đoán ô - thay vì 6 tùy chọn hơi vô dụng được trình bày trong danh sách thả xuống.
1owk3y

@ câu trả lời manat, nhưng mà không có dấu ngoặc kép xoăn:\"@\"
MSC

12

Powershell xuất hiện để đổ chính xác. một cái gì đó như

tìm kiếm powershell.exe trên máy tính windows nếu bạn không biết powershell.

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

Hy vọng nó sẽ giúp được ai đó.


Để thuận tiện, Shift + nhấp chuột phải vào thư mục lưu CSV của bạn và chọn Mở cửa sổ PowerShell tại đây , đơn giản hóa lệnh này import-csv Myfile.csv | export-csv Myfile_quoted.csv -NoTypeInformation -Encoding UTF8. nhớ sử dụng dấu ngoặc đơn xung quanh tên tệp có dấu cách hoặc ký tự đặc biệt khác.
Walf

4

Đây là cách dễ nhất đối với tôi: Tôi đã nhập bảng tính vào Access 2010 và xuất nó từ đó dưới dạng tệp văn bản được phân tách. Đã cho tôi các dấu ngoặc kép xung quanh các lĩnh vực của tôi. Mất ít hơn một phút cho 42k hàng bây giờ tôi có các bước xuống.


Hạn chế duy nhất sẽ là nếu bản thân trường có trích dẫn kép.
access_granted

3

Tôi đã tìm thấy một công việc khác xung quanh không liên quan đến VBA Macro, nhưng nó yêu cầu Notepad ++ hoặc trình soạn thảo văn bản dựa trên macro tương tự.

Xuất tệp của bạn dưới dạng văn bản tách biệt Tab, sau đó mở tệp đã xuất trong Notepad ++. Thay thế tất cả các phiên bản của ký tự 'tab' bằng văn bản "," (nghĩa là trích dẫn kép, dấu phẩy, trích dẫn kép) và sau đó sử dụng một macro khác để thêm tiền tố và hậu tố mỗi dòng văn bản bằng một trích dẫn kép.

Một chút hack nhưng tôi thấy nó nhanh hơn là làm cho macro VBA hoạt động.


1
Nếu bạn muốn làm điều đó trong Notepad ++, tốt nhất bạn nên sử dụng tìm kiếm biểu thức chính quy và thay thế và sau đó bạn có thể thực hiện cả 3 thao tác thay thế (bắt đầu dòng, tab và kết thúc dòng) ở một nơi
sahmeepee

3

Đánh dấu các ô bạn muốn thêm dấu ngoặc kép. Chuyển đến Định dạng -> Ô -> Sao chép tùy chỉnh / Dán phần sau vào trường Loại: \ lu @ \ Khăn Nhấp vào okay okay Hãy vui vì bạn không làm tất cả bằng tay.

Từ: http://www.lenashore.com/2012/04/how-to-add-quotes-to-your-cells-in-excel-automatically/


1
Điều này hoạt động tốt cho alpha - bạn sẽ cần \ '# #' cho các cột có giá trị số.
DropHit

Giữa \ "@ \" và \ "# \" điều này hoạt động. Nhưng tôi vẫn phải chỉnh sửa các tiêu đề trong Notepad ++ cho các cột số và sau đó thay thế tất cả "" "bằng". Thật là một nỗi đau.
Gary

Chưa thử nó .. nhưng nếu bạn đang tạo một csv, bạn không thể thay đổi các cột thành văn bản và sử dụng \ "@ \"
Steve Coleman

2
  1. Đánh dấu các ô bạn muốn thêm dấu ngoặc kép.
  2. Nhấp chuột phải và đi đến: Định dạng ô → Tab: Số → Thể loại: Tùy chỉnh
  3. Dán phần sau vào trường Loại: "''"@"''"(xem chi tiết bên dưới)
  4. Nhấp vào
  5. Mở tệp .csv bằng Notepad (hoặc tương đương)
  6. Thay thế tất cả ' '(trích dẫn đơn lặp lại) bằng "(trích dẫn kép)
  7. Thay thế tất cả ;
  8. Lưu tệp .csv đã sửa đổi

1

Nếu bạn sử dụng Notepad ++ để thêm dấu ngoặc kép vào đầu mỗi dòng, chỉ cần mở tệp csv đã xuất, đặt con trỏ của bạn ở dòng đầu tiên, cột thứ 1, sau đó nhấp vào menu Chỉnh sửa / Trình chỉnh sửa cột ... , trong trường ' Văn bản để chèn ', nhập " , sau đó bắt đầu mỗi dòng sẽ có một trích dẫn, sau đó bạn có thể sử dụng biểu thức thông thường để tìm kiếm / thay thế tất cả các tab.


0

Dành cho người dùng Windows

  1. "Lưu dưới dạng" tệp Excel dưới dạng CSV
  2. Mở tệp đã lưu với Bảng tính Mircrosoft Works
  3. "Lưu dưới dạng" bảng tính dưới dạng CSV
  4. Tất cả các trường không phải là số hiện có "xung quanh chúng

Lưu ý rằng đây không phải là cùng một trích dẫn bàn phím có sự đa dạng về phía trước và phía sau.
Vì vậy, nếu sử dụng CSV để LOAD vào bảng Mysql, hãy cắt và dán vào tham số ENCLATED nếu không bạn sẽ tự hỏi tại sao bạn nhận được thông báo#1083 - Field separator argument is not what is expected


3
Công trình Mircrosoft <-? Bạn có chắc chắn về điều đó không?
nixda

0

Tôi đã sử dụng cách tiếp cận bên dưới để lấy ba cột trong Excel và xây dựng chuỗi trong cột thứ tư.

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

Vấn đề của tôi với "''"@"''"cách tiếp cận là cột thứ hai trong dữ liệu của tôi là một con số mà "''"@"''"cách tiếp cận không làm gì với các con số. Đôi khi cột thứ hai trống nhưng tôi cần chắc chắn rằng nó được thể hiện trong tệp văn bản cuối cùng.


0

Một cách khác nếu bạn có quyền truy cập MS (tôi có ver 2007) nhập tệp sau đó xuất tệp dưới dạng tệp văn bản. Sau đó thay đổi .txt thành .csv. Lưu ý tất cả các trường số sẽ không có dấu ngoặc kép xung quanh nó, vì vậy nếu bạn cũng cần dấu ngoặc kép xung quanh các số đó thì trong khi truy cập, hãy thay đổi trường từ trường số thành trường văn bản.


0

Việc xuất các chuỗi được phân tách bằng dấu phẩy và trích dẫn chỉ có thể được thực hiện bằng Excel 2016 và Notepad, sử dụng bản sao dữ liệu, công thức, xuất, thay đổi thuộc tính tệp, thay thế trong Notepad, lưu tệp đã xuất và dọn dẹp. Mỗi bước là một bước đơn giản. Chi tiết:

  1. Sao chép các cột sẽ được xuất sang một bảng trung gian mới để giữ bản gốc và dưới dạng bản sao lưu, với trang tính mới sẽ bị xóa sau đó để lại bảng tính như cũ.

  2. Đặt (các) ký tự không xảy ra, nói '#' hoặc ';-)' ở mỗi đầu của một chuỗi trong cột nói A với công thức =concat("#",trim(A1),"#"), đặt công thức trên tất cả các hàng của cột khác.

    • Các cột liền kề có thể được thực hiện cùng một lúc nhưng không trích dẫn số để tránh chúng được đọc dưới dạng chuỗi.
    • Việc cắt xén tránh mọi khoảng trống có thể kích hoạt hành vi xuất khẩu không có kỹ năng.
    • Các chuỗi không được chứa '"' có thể gây nhiễu nhập.
  3. Sao chép (các) cột mới qua A ..., sử dụng phương pháp '123' để không mang theo công thức.

  4. Xuất trang tính dưới dạng tệp CSV, để đặt dấu phẩy giữa các trường bao gồm số.

  5. Thay đổi thuộc tính file.csv để có thể mở bằng Notepad.

  6. Sử dụng Notepad để thay thế (các) ký tự tùy ý bằng '"'.

  7. Mặc dù có vẻ hợp lý khi sử dụng "làm ký tự tùy ý, nhưng nó phải được đặt trong một ô khác, giả sử '$ A $ 50', và sau đó, thứ xuất hiện khi xuất là '" "", rõ ràng là một tác nhân bất tiện khác.

  8. Trong notepad, tệp nên được lưu, trở thành tệp * .txt được nhập và xóa * .csv trung gian.

  9. Với việc dọn dẹp các nhiệm vụ bảng tính thêm đã hoàn thành.

Có lẽ một ngày nào đó các công cụ xuất khẩu Access có thể được nhúng vào Excel. Một cách tiếp cận chung hơn trong số các chương trình sử dụng cắt và dán, sẽ có các tùy chọn dán bao gồm lựa chọn các cách để giải thích cấu trúc đầu ra và cung cấp các dấu phân cách.


0

Câu trả lời của Michael ngày 21 tháng 8 năm 2014 thực sự hữu ích. Tuy nhiên, tôi đã phải thực hiện một hoặc hai bước bổ sung:

  1. Mở tệp .csv bằng Notepad (hoặc tương đương)
  2. Thay thế tất cả '' (trích dẫn đơn lặp lại) bằng "(trích dẫn kép)
  3. Thay thế tất cả ; (được sử dụng làm dấu phân cách trong phiên bản Excel tiếng Đức) với,
  4. Lưu tệp .csv đã sửa đổi

Không có lời giải thích cho downbvote? Mệnh giá cho khóa học, nhưng những người khác dự kiến ​​sẽ học như thế nào? Bạn có thể nghĩ rõ ràng điều gì là sai, ông Downvoter, nhưng nó có thể không rõ ràng với mọi người. Chúng tôi đang cố gắng xây dựng một cộng đồng ở đây và bạn không giúp đỡ.
Mawg

-1

Đây là công thức của tôi. Tôi ghét phải làm điều này nhưng tôi không có cách nào tốt hơn. Trong trường hợp của tôi, tôi không nhận được báo giá xung quanh bất kỳ lĩnh vực nào. Tôi cũng cần sử dụng mã hóa UTF-8 và; thay vì các tab, vì vậy đây là những gì tôi đã kết thúc.

LƯU Ý: do tính không hợp lệ của việc đặt dấu ngoặc kép được bao quanh bởi dấu ngoặc đơn, v.v., tôi đã sử dụng "định dạng bàn phím" một cách có chủ đích để biểu thị cả tổ hợp phím và ký tự và chuỗi ký tự.

  1. Chèn một cột mới trước bất kỳ cột nào khác trong bảng tính Excel của bạn (nhấp vào tiêu đề của cột thứ nhất, toàn bộ cột được chọn, nhấp chuột phải, chọn "chèn").
  2. Chọn toàn bộ phạm vi ô trống từ cột mới (chúng được chọn theo mặc định). Trên trường công thức, chèn bất cứ thứ gì bạn muốn: ví dụ : xxx. Nhấn CTRL+ enterđể điền vào toàn bộ cột với cùng một giá trị.
  3. Lưu tệp dưới dạng Văn bản Unicode (* .txt).
  4. Mở tệp trong Notepad ++.
  5. Nhấn CTRL+ fđể mở Tìm kiếm / Thay thế.
  6. Chuyển đến tab Thay thế.
  7. Trong "Chế độ tìm kiếm", chọn "Mở rộng (\ n, \ r, \ t, \ 0, \ x ...)".
  8. Trong trường "Tìm kiếm", nhập xxxcộng với tabtổ hợp phím.
  9. Trong trường "Thay thế", nhập "(trích dẫn kép).
  10. Nhấn Thay thế Tất cả.
  11. Trong trường "Tìm kiếm", đặt tabtổ hợp phím.
  12. Trong phần "Thay thế", nhập ";"(trích dẫn kép, dấu chấm phẩy, trích dẫn kép).
  13. Nhấn Thay thế Tất cả.
  14. Bạn sắp hoàn thành. Đối với trích dẫn kép cuối cùng, hãy nhập \rvào trường "Tìm kiếm" và "\r"(trích dẫn kép, dấu gạch chéo ngược, trích dẫn kép) trong mục "Thay thế". Nhấn Thay thế Tất cả.
  15. Miễn là bạn không sử dụng ký tự tiếng Trung, v.v., bạn có thể thay đổi mã hóa thành UTF-8 và lưu tệp an toàn.

-1

Tôi đã gặp vấn đề này nhiều lần. Đây là giải pháp đơn giản nhất mà tôi đã đưa ra.

  1. Lưu tệp dưới dạng Excel
  2. Nhập Excel vào bảng Access
  3. Xuất bảng từ Access sang tệp văn bản.

Access sẽ cho phép bạn chỉ định xuất dấu phân cách dưới dạng dấu phẩy và các trường văn bản đủ điều kiện có dấu ngoặc kép. Trong trình hướng dẫn xuất, bạn có thể chỉ định bất kỳ dấu phân cách hoặc ký tự nào xung quanh chuỗi bạn muốn.

Bạn có thể cần tạo truy vấn Access để sắp xếp các trường theo thứ tự cụ thể hoặc ẩn trường ID tự động được thêm bởi Access.

Ngoài ra ... một khi đã xuất sang CSV, KHÔNG mở lại trong Excel. Nếu bạn muốn xem kết quả, hãy mở nó trong notepad. Excel có xu hướng gây rối với dữ liệu của một csv .... Tôi nghĩ rằng đó là các trường được đệm bằng các số 0 đứng đầu nếu tôi nhớ chính xác.


Điều này dường như trùng lặp thông tin trong câu trả lời của người dùng.
fixer1234

-1

Dưới đây là cách sử dụng ứng dụng OpenOffice để lấy bảng tính Excel và tạo tệp văn bản (csv) với dấu ngoặc kép quanh mỗi trường văn bản.

Mở tệp Excel bằng OpenOffice, sau đó làm theo các bước sau:

Tệp> Lưu dưới dạng

Cung cấp tên mới cho tệp bạn sắp tạo

Đối với Filetype, chọn "Kiểm tra CSV (.csv)"

bật hộp kiểm "Chỉnh sửa cài đặt bộ lọc"

nhấp vào để lưu"

chọn "Giữ định dạng hiện tại"

Dấu phân cách trường phải là dấu phẩy :,

Dấu phân cách văn bản phải có dấu ngoặc kép: "

đánh dấu vào ô "Trích dẫn tất cả các ô văn bản"

nhấp vào "OK"

Điều này làm việc cho tôi!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.