Cách mở tệp CSV được phân cách bằng dấu chấm phẩy trong phiên bản Excel của Hoa Kỳ


95

Khi tôi bấm đúp vào tệp .csv, nó sẽ được mở trong Excel. Các tệp csv có các cột được phân cách bằng dấu chấm phẩy (không phải dấu phẩy, nhưng cũng có định dạng hợp lệ).

Sử dụng thiết lập Windows / Excel của Đức, tệp đã mở được hiển thị chính xác, các cột được phân tách trong đó dấu chấm phẩy tồn tại trong tệp csv.

Nhưng khi tôi thực hiện tương tự trên thiết lập Windows / Excel tiếng Anh (US-), chỉ có một cột được nhập, hiển thị toàn bộ dữ liệu bao gồm dấu chấm phẩy trong cột đầu tiên.
(Tôi không có thiết lập tiếng Anh để kiểm tra, người dùng đã báo cáo hành vi)

Tôi đã cố gắng thay đổi giá trị phân tách danh sách trong cài đặt khu vực Windows, nhưng điều đó không thay đổi bất cứ điều gì.

Tôi có thể làm gì để có thể nhấp đúp vào mở các tệp CSV đó khi cài đặt tiếng Anh?

EDIT:
Đây có vẻ là giải pháp tốt nhất để không phụ thuộc vào các tệp CSV trong trường hợp này. Tôi đã hy vọng rằng có một số định dạng cho các tệp CSV cho phép sử dụng chúng trên phạm vi quốc tế.
Giải pháp tốt nhất có vẻ là tôi sẽ chuyển sang tạo các tệp XLS.


1
Bạn có thể đề nghị người dùng của mình sử dụng LibreScript Calc - nó xử lý các CSV với các dấu tách tùy ý.
ness101

Câu trả lời:


1

Những tập tin được phân phối? tải về? Tạo cục bộ?

Tôi nghĩ rằng cách duy nhất để giải quyết vấn đề của bạn mà không cần truy cập vào PC của người dùng và không cần anh ta phải làm một cái gì đó khác với "nhấp đúp" vào tệp là chuyển đổi các tệp thành .xls trước khi phân phối hoặc đặt để tải xuống hoặc tạo một .xls (hoặc định dạng khác hoạt động) thay vì tệp .csv. Bạn có thể làm điều đó với một tập lệnh hoặc thủ công với một Excel đang hoạt động, tùy thuộc vào số lượng tệp và cách chúng được tạo.


vâng, tôi nghĩ đó là cách tốt nhất để trực tiếp tạo các tệp XLS. Tôi đã hy vọng rằng có một số định dạng cho các tệp CSV giúp chúng có thể sử dụng được trên phạm vi quốc tế, nhưng nếu không thể, các tệp XLS sẽ hoạt động bất kể ở đâu.
Holgerwa

8
Làm thế nào đây là câu trả lời chính xác, nó là vô dụng.
Stevie G

Câu trả lời khủng khiếp - xem câu trả lời nâng cao khác.
jmc

203

Thêm phần này vào dòng đầu tiên của tệp CSV:

sep=;

hoặc là

sep=,

Điều này sẽ ghi đè cài đặt hệ thống ("ký tự phân tách danh sách") và Excel sẽ mở tệp chính xác.


4
+1 đã làm điều này trong excel 2010 và nó hoạt động hoàn hảo.
N Sậy

8
Có một danh sách các cài đặt khác như vậy? Nói với Excel để sử dụng, vì dấu phân cách thập phân thường đi cùng với việc bảo nó sử dụng; làm dấu phân cách cột.
ZweiBlumen

5
Hoạt động hoàn hảo cho Excel, nhưng lưu ý rằng điều này có thể không được hỗ trợ trong các chương trình dữ liệu hoặc bảng tính khác. Nó chỉ có thể là một vấn đề nhỏ, chỉ đơn giản là hiển thị thêm dòng đầu tiên có sep=hoặc sep=;trong đó, nhưng một số chương trình hoặc tập lệnh tự động có thể không mong đợi dòng đầu tiên thêm, dẫn đến tiêu đề cột hoặc sep=;chính dòng được hiểu là dữ liệu thực tế.
Sygmoral

5
Hãy cẩn thận với điều này. Nếu bạn lưu trong Excel, nó sẽ: - Xóa thông số kỹ thuật của dấu phân cách - Lưu bằng dấu tách cài đặt khu vực
Bjinse 17/03/2016

1
Có thể xác nhận fwrite($fileHandle, 'sep=,' . "\r\n");hoàn toàn khắc phục sự cố với fputcsvtrong PHP.
h2ooooooo

26

Bạn có thể sử dụng Trình hướng dẫn nhập văn bản. Điều này không hoạt động trên một lần nhấp hai lần, nhưng là cách tốt nhất tôi có thể đưa ra mà không liên quan đến việc gây rối với cài đặt lan truyền.

Trong Excel 2003 goto Data-> Import External Data-> Import Datatrên thanh menu (không thể nói nó ở đâu vào năm 2007, tôi không có sẵn điều đó vào lúc này). Tìm và chọn tệp CSV của bạn.

Khi nó mở ra, bạn nhận được Text Import Wizard, cho phép bạn chỉ định (các) dấu phân cách sẽ sử dụng.


Trên Outlook 2007 đã vào tab Dữ liệu và chọn cột của bạn và nhấp vào nút Văn bản thành Cột trên bộ Công cụ Dữ liệu.
Petealx

1
Vâng, đó là một giải pháp. Thật không may, người dùng cần xem dữ liệu không sẵn sàng làm điều này. Họ có thể xử lý "nhấp đúp chuột mở", nhưng sẽ không thể làm gì phức tạp hơn. Chúng tôi đã cố gắng giáo dục họ ít nhất một chút, nhưng họ từ chối.
Holgerwa

1
@Holgerwa - có thể chạy các tệp thông qua một số loại quy trình chuyển đổi trước khi đưa chúng cho người dùng không? Hay họ cần duy trì giới hạn bán đại tràng? Những người khác đã đề xuất điều này, nhưng khá dễ dàng để trao đổi dấu chấm phẩy cho dấu phẩy bằng cách sử dụng một số loại tập lệnh (Tôi khuyên bạn nên tìm / thay thế đơn giản vì bạn không muốn chuyển đổi các dấu ngoặc kép bên trong).
DMA57361

6

Xem bài viết này:
Rắc rối với việc mở tệp CSV bằng Excel? Sự cố Dấu phẩy và Dấu chấm phẩy trong Excel do Cài đặt khu vực cho Châu Âu

Cung cấp 3 giải pháp:

  • Thay đổi phần mở rộng tệp CSV thành TXT (khi bạn mở tệp TXT bằng Excel, nó sẽ khởi động trình hướng dẫn nhập tệp văn bản nơi bạn có thể chọn dấu phân cách)
  • Thay thế tất cả các tên miền, tên miền bằng tên miền;
  • Thay đổi cài đặt ngôn ngữ và khu vực của bạn

Như các bạn đã chỉ thay đổi giá trị phân cách danh sách trong khu vực thiết lập Windows, tôi lưu ý rằng bài báo nói rằng để nhập “” cho Decimal Symbolvà “” cho List Separator.

Nếu bạn cảm thấy thoải mái với VBA, hãy xem:

Mở tệp CSV được phân tách bằng dấu chấm phẩy bằng VBA trong Excel 2000
Xuất và nhập văn bản bằng Excel


Tôi đồng ý, tất cả các tùy chọn hợp lệ, nhưng thật không may, tôi không ở trong tình huống bình thường với người dùng các tệp CSV này. Nhập .TXT sẽ không hoạt động (xem nhận xét của tôi về câu trả lời của DMA57361), thay thế dấu chấm phẩy bằng dấu phẩy sẽ không hoạt động do các vấn đề phân tách thập phân và thay đổi cài đặt khu vực sẽ không hoạt động vì tôi không có quyền truy cập vào PC được sử dụng. Người dùng sẽ chỉ nhấp đúp vào tệp và nếu họ không nhận được những gì họ mong đợi, họ sẽ khiếu nại và từ chối giúp giải quyết vấn đề.
Holgerwa

@Holgerwa: Nếu bạn không điều khiển PC người dùng thì bạn không thể làm gì được. Bởi vì đề xuất khác của tôi sẽ là thay đổi trình xử lý thành phần mở rộng .csv thành chương trình của riêng bạn, điều này sẽ sửa (nhưng thông minh) các dấu phân cách và gọi Excel.
harrymc

@Holgerwa: Xin lưu ý chỉnh sửa của tôi ở trên liên quan đến cài đặt khu vực.
harrymc

3

Cách tốt nhất tôi đã thử là đặt cài đặt khu vực máy tính của bạn như sau:

  • trong "Tiêu chuẩn và định dạng", chọn "Tiếng Anh (Hoa Kỳ)";
  • trong "Địa điểm", chọn "Hoa Kỳ".

Nó làm việc cho tôi, chỉ cần thử.


Trên thực tế, vấn đề của OP là ngược lại. Nên đổi thành một khu vực châu Âu để lấy dấu phẩy là biểu tượng thập phân và sau đó dấu chấm phẩy sẽ là dấu tách danh sách.
yosh m

0

Nếu không có dấu phẩy nào khác trong tệp, bạn chỉ cần thực hiện tìm / thay thế trong trình soạn thảo văn bản trên dấu chấm phẩy để biến chúng thành dấu phẩy. Xử lý như tập tin csv bình thường sau đó.


Các tệp CSV này cần hoạt động ở các quốc gia khác nhau (cài đặt khu vực) và trong nhiều cài đặt khu vực, dấu phẩy là dấu phân cách thập phân thay vì dấu chấm. Tệp giá trị được phân tách bằng dấu phẩy "chuẩn" sẽ không hoạt động. Tôi đoán đó là lý do tại sao dấu chấm phẩy được thêm vào như một dấu phân cách hợp lệ cho các tệp CSV.
Holgerwa
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.