Làm cách nào để tôi có được Excel để nhập tệp CSV bằng dấu phẩy trong một số trường nội dung?


13

Làm cách nào để có được Excel để nhập tệp CSV của tôi ?

Tập tin

Tôi có một tệp tự xưng là CSV. Nó chứa 10 trường, tất cả đều được bao quanh bởi dấu ngoặc kép (có, thậm chí cả ngày và số.) 2 hoặc 3 trong số các trường này chứa dấu phẩy . Nhưng dữ liệu trong các lĩnh vực này cũng được bao quanh bởi dấu ngoặc kép.

Vấn đề

Khi tôi cố gắng mở tệp này, Excel hoàn toàn bỏ qua các trích dẫn và cho rằng chúng là một phần của dữ liệu.

Do đó, nó phân tách các trường có dấu phẩy thành nhiều cột.

Điều này là xấu, ít nhất là đối với tôi.

Dữ liệu mẫu

"20051", "", "2009 ngày 30 tháng 9 02:53:23", "SOMETEXT", "", "5000", "2000000", "2008 - 99999 - -99999, 2008 - unk - unk", "191 - SOMETEXT - SOMETEXT, 192 - SOMETEXT - SOMETEXT, 193 - SOMETEXT - SOMETEXT, SOMETEXT, SOMETEXT, SOMETEXT, SOMETEXT, SOMETEXT, 195 - SOMETEXT - SOMETEXT, 141 - SOMETEXT - SOMETEXT "
"20052", "SOMETEXT", "2009 ngày 08 tháng 8 07:56:50", "SOMETEXT", "", "50000", "5000000", "2007 - 99999 - 99999", "146 - SOMETEXT - SOMETEXT, 145 - SOMETEXT - SOMETEXT, 147 - SOMETEXT - SOMETEXT, 148 - SOMETEXT - SOMETEXT "," 103 - SOMETEXT - SOMETEXT, 1131 - SOMETEXT - SOMETEXT "

Tôi đã thử những gì?

Tôi đã sử dụng cơ sở nhập khẩu để chỉ định các dấu phân cách và như vậy, nhưng điều này dường như không có ích.

Tôi đã thử chuyển "Dấu phân cách văn bản" từ một trích dẫn kép thành "{none}" và quay lại. Điều này dường như chỉ ảnh hưởng đến cột đầu tiên. Điều này sẽ có thể thay đổi nếu có thể nhấp vào các cột khác và áp dụng cài đặt này cho từng cột. Nhưng đây không phải là trường hợp, và có vẻ như điều này được dự định để làm việc trên các cột.

Tôi có thể thử cái gì khác?


1
Phiên bản Excel nào? Và nó đã được vá đầy đủ?
harrymc

Tôi đã thấy điều này vào năm 2002 và 2007. Tôi không chắc chắn về năm 2007, nhưng tôi khá chắc chắn rằng năm 2002 đã hoàn toàn cập nhật
Rory Becker

Bạn có thể cung cấp một liên kết đến CSV không? Hoặc một phiên bản cắt giảm thể hiện vấn đề?
Josh Comley

Đã thêm dữ liệu ví dụ ở trên
Rory Becker

Câu trả lời:


13

Tôi vừa thử một bài kiểm tra nhanh mà sao chép vấn đề của bạn.

Tôi đã tạo CSV 1 dòng trong Word (sử dụng dấu ngoặc kép thông minh) làm test.csv, 123 123,, 4,5,6, và nó được mở trong Excel như bạn mô tả.

Hãy thử thay thế


Đã chơi với mẫu của bạn, tôi nhận thấy rằng Excel không thích khoảng trắng giữa các trường

ví dụ thay vì

"20051", "", "2009 Sep 30 02:53:23", ...

bạn muốn

"20051","","2009 Sep 30 02:53:23",...

một sự thay thế Biểu thức chính quy đàng hoàng sẽ có thể xử lý nó với

Find:    |("[^"]*",) |
Replace: |\1|

(ký tự ống chỉ cho tín hiệu thị giác)

Hoặc chỉ cần sửa đổi mã .Net nếu bạn có quyền truy cập vào nó ;-)

Ngoài ra, như Arjan đã chỉ ra , bạn cũng có thể cần phải chuyển đổi tệp từ UTF-8 sang ANSI để ngăn ô A1 chứa BOM và các qoutes xung quanh.

Tôi đã bắt gặp Catch 22 của CSV được mã hóa ANSI không xử lý các ký tự quốc tế và CSV được mã hóa UTF không được Excel xử lý thích hợp; và không tìm thấy giải pháp trong khi duy trì CSV. Nếu cần hỗ trợ ký tự quốc tế, các định dạng XML (hoặc XLS gốc) dường như là cách duy nhất để đi đến với chi phí đơn giản.


Không có trích dẫn thông minh liên quan. Tệp này được tạo để sử dụng dấu ngoặc kép từ một chương trình được viết bằng .Net.
Rory Becker

Tôi không có ý định nói các tệp UTF-8 nên được mã hóa khác nhau. Nhưng khi nhập UTF-8, thì thực sự người ta phải nói cho Excel biết mã hóa là gì. Và UTF-8 được ẩn ở đâu đó bên dưới trong danh sách mã hóa dài đó.
Arjan

Tôi đã nhập nhiều tệp CSV được mã hóa UTF-8. Tôi lưu ý rằng nếu họ có BOM.
Arjan

@lumbarious: Bạn là một NGÔI SAO! Hoạt động hoàn hảo ... Tôi không thể tin rằng Excel không thể giải quyết vấn đề này :(
Rory Becker

1
Yup, dường như khoảng trắng giữa các trường hoàn toàn giới hạn Excel 2011. Xóa các khoảng trắng khắc phục sự cố và cũng giữ cho Excel không bao gồm các dấu ngoặc kép như một phần của dữ liệu. Tôi đoán là có một thông số ở đâu đó nói rằng dấu ngoặc kép chỉ phân định dữ liệu nếu chúng nằm liền kề với dấu phẩy.
Peter Gluck

8

Vấn đề này đã làm tôi khó chịu trong một số năm. Tôi chỉ phát hiện ra giải pháp và nó được ám chỉ trong các câu trả lời ở trên nhưng không được phát âm rõ ràng.

Đó là không gian sau dấu phẩy!

Điều này không nhập vào excel;

HEADER1, HEADER2
"1,000", "2,000"

Trong khi

HEADER1,HEADER2
"1,000","2,000"

Làm!


2
Chào mừng bạn đến với Siêu người dùng! Câu trả lời này được viết một cách hữu ích và rõ ràng. Cảm ơn bạn đã đóng góp của bạn và chúng tôi hy vọng bạn dính xung quanh.
dùng1717828

YAAAS! Câu trả lời được chấp nhận có câu trả lời thực sự cho câu hỏi bị chôn vùi không giống như câu trả lời này. Các op không sử dụng dấu ngoặc kép thông minh.
dardub


2

Khi tôi cố gắng mở tệp này, Excel hoàn toàn bỏ qua các trích dẫn và cho rằng chúng là một phần của dữ liệu. Do đó, nó phân tách các trường có dấu phẩy thành nhiều cột.

Nếu bạn không vô tình sử dụng các trích dẫn thông minh như lumbarius đề xuất và giả sử bạn đang ở trên Windows: đó có thể là do cài đặt khu vực của bạn. Khi bấm đúp hoặc sử dụng Tệp »Mở, thì Excel không hỏi bạn bất kỳ chi tiết nào, mà chỉ sử dụng các cài đặt này.

Tuy nhiên, thủ công gọi chức năng nhập (như bạn đã làm) nên đã hoạt động, vì vậy tôi nghi ngờ việc thay đổi cài đặt khu vực sẽ giúp ...


Điều này có vẻ giống như một bình luận hơn là một câu trả lời ...
Metafaniel

Đề nghị này đã giải quyết chính xác vấn đề của tôi! Thực hiện nhập CSV (Dữ liệu> Từ Văn bản / CSV) không hoạt động như mong đợi, nhưng nếu tôi chỉ thực hiện Tệp> Mở trên tệp CSV, thì nó đã hoạt động. Sau đó, tôi có thể chỉ cần sao chép / dán toàn bộ bảng vào sổ làm việc khác của mình.
WOUNDEDStevenJones 17/10/18

1

Bạn đã kiểm tra mã hóa ký tự của tập tin của bạn? Hãy thử đặt mã hóa ký tự thành UTF-8.

Bạn có thể sử dụng notepad2 để thay đổi mã hóa ký tự.


Mã hóa được Notepad2 báo cáo là "UTF8 có chữ ký"
Rory Becker

Sau đó, trong khi nhập, bạn cần cuộn xuống trong danh sách mã hóa. UTF-8 được ẩn ở đâu đó thấp trong danh sách. (Không cần sử dụng tệp CSV được mã hóa UTF-8, nhưng vì đầu vào của bạn đã UTF-8, bạn thực sự cần phải nói với Excel những gì sẽ được sử dụng. Lưu ý rằng một ký tự trích dẫn bình thường sẽ được mã hóa giống nhau trong ASCII, Western và UTF -8, nhưng có thể chữ ký (Dấu hiệu đơn hàng Byte) hoặc một số nhân vật khác gây rối?)
Arjan

@Peter Tại sao thay đổi liên kết chính thức đến Wikipedia? Điều đó làm cho không có ý nghĩa gì cả? Chúng tôi không muốn gửi cho mọi người xung quanh quá nhiều và điều này chắc chắn không đảm bảo chỉnh sửa - đặc biệt là trên một bài đăng hai năm tuổi.
slhck

1

Chỉ cần thêm vào các câu trả lời ở đây: tập trung vào SPACES sau CAM KẾT trong các tệp CSV của bạn. Excel không thích những thứ này nếu bạn đã trích dẫn các trường trong dữ liệu của mình.

Lượt thích Excel (4 cột dữ liệu):

a, b, c, d

Nhưng không thích (3 cột dữ liệu):

a, "b, c", d

Nó thích (3 cột dữ liệu):

a,"b, c",d

Tôi chỉ đánh vào vấn đề đó. Tôi đã đập đầu vào tường cho đến khi tôi nhận được ghi chú này. Điều này chỉ đơn giản là tuyệt vời. Tôi đang chạy Excel 2017 và sự điên cuồng đó vẫn tồn tại ...
Albert Godfrind 16/03/18

1

Tôi đã chạy qua vấn đề này ngày hôm nay và cũng tìm thấy một giải pháp hiệu quả cho tôi.

Môi trường / bối cảnh của tôi: Tôi có một trang web với một số câu hỏi (mẫu) có chứa cả dấu ngoặc kép và dấu phẩy. Cả câu hỏi và câu trả lời đều được lấy ra khỏi cơ sở dữ liệu và được ghi vào tệp Excel cho mục đích báo cáo.

Tôi có cùng một vấn đề được mô tả ở trên: Các câu hỏi bao gồm cả dấu ngoặc kép và dấu phẩy đang được chia thành nhiều cột trong Excel.

Đối với mục đích của tôi, sử dụng hai dấu ngoặc đơn thay cho dấu ngoặc kép đã thực hiện thủ thuật.

-> trên trang web, hai trích dẫn đơn giống như một trích dẫn kép cho khách truy cập trang web

-> Trong tệp Excel, một lần nữa, hai dấu ngoặc đơn trông giống như một trích dẫn kép cho người dùng xem dữ liệu báo cáo

Tôi nhận ra rằng giải pháp này sẽ không hiệu quả với tất cả mọi người, nhưng hy vọng nó sẽ giúp được ai đó.


1

Tôi đã có thể làm điều này bằng cách sử dụng:

a,b,c,"=""(1,2,3)"""

cung cấp bốn cột:

|  a  |   b   |   c   |   (1,2,3)   |

0

Một cách khác để làm điều đó:

  1. Mở tệp trong LibreScript hoặc OpenOffice Calc.
  2. Đặt các tùy chọn nhập chính xác, như UTF-8, được phân tách bằng dấu phẩy, ...
  3. Lưu trữ tệp dưới dạng ods hoặc xls
  4. Mở tệp mới trong Excel.

Bằng cách này, bạn có thể đặt mã hóa chính xác như UTF-8, nhiều phiên bản (tất cả?) Của Excel không thể xử lý chính xác mà không có BOM và bạn không phải lo lắng về một regex có thể thay thế một số văn bản bên trong trường và bạn không để ý điều đó

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.