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?
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:
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":
Để 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.
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ọ
Tôi tìm thấy giải pháp dễ dàng này:
"''"@"''"
(xem chi tiết bên dưới)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 .
\"@\"
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 đó.
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.
Đâ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.
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.
Đá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/
"''"@"''"
(xem chi tiết bên dưới)' '
(trích dẫn đơn lặp lại) bằng "
(trích dẫn kép);
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.
Dành cho người dùng Windows
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
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.
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.
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:
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ũ.
Đặ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.
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.
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ố.
Thay đổi thuộc tính file.csv để có thể mở bằng Notepad.
Sử dụng Notepad để thay thế (các) ký tự tùy ý bằng '"'.
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.
Trong notepad, tệp nên được lưu, trở thành tệp * .txt được nhập và xóa * .csv trung gian.
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.
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:
Đâ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ự.
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.
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.
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!