Excel không tôn trọng cài đặt dấu phân cách để đọc hoặc ghi tệp CSV


20

Khi lưu / mở tệp CSV trong Excel, dấu phân cách mặc định là dấu chấm phẩy (;), vì tôi cần nó là dấu phẩy (,) Tôi đã cố gắng thay đổi nó bằng cách thay đổi cài đặt Ngôn ngữ và Vùng theo một số bài đăng khác về vấn đề này ( tức là Làm cách nào để Excel diễn giải dấu phẩy dưới dạng dấu phân cách mặc định trong tệp CSV? ).

Tuy nhiên, sau khi thay đổi bộ tách danh sách trong các cài đặt đó, Excel của tôi tiếp tục lưu tệp CSV bằng dấu chấm phẩy. Có phải vì Excel đã được cài đặt trong khi trình phân tách danh sách của tôi được đặt thành dấu chấm phẩy? hoặc có một thiết lập khác tôi đang thiếu ở đây?

Cảm ơn bạn trước.


Là vấn đề trong việc đọc các tệp CSV hiện có hoặc tạo một tệp bằng dấu phẩy làm dấu phân cách?
fixer1234

Cả hai, tôi đã thực hiện những gì @Raystafarian đã đề cập trước khi lưu một tệp mới. Thiết lập khu vực của tôi là chính xác. Sau đó, tôi mở Excel và lưu dưới dạng CSV và khi tôi mở tệp trong notepad tôi có thể thấy rằng nó đã sử dụng dấu chấm phẩy. Nếu tôi mở trong Excel thì nó tải đúng vì Excel vẫn sử dụng a; để tách các cột.
Sandra

Câu trả lời:


35

Tôi tìm thấy vấn đề. Biểu tượng thập phân của tôi trong cài đặt Vùng cũng là dấu phẩy (Châu Âu), vì vậy, ngay cả khi dấu tách Danh sách của tôi là dấu phẩy, CSV đã được lưu bằng dấu chấm phẩy. Bây giờ tôi đã thay đổi ký hiệu thập phân của mình thành một điểm và bây giờ tệp CSV được tạo chính xác với dấu phẩy là dấu phân cách. Tôi đã thử nghiệm điều này hai lần và bây giờ biết rằng phải có một ngoại lệ: nếu ký hiệu thập phân là dấu phẩy, thì dấu phân cách danh sách sẽ là dấu chấm phẩy thậm chí được đặt khác.


12
Cảm ơn bạn đã dành thời gian để cập nhật bài viết với một câu trả lời.
Học sinh của Gary

5

Để tiết kiệm

Bạn cần điều chỉnh dấu tách danh sách trong cài đặt ngôn ngữ và khu vực trước khi lưu tệp -

nhập mô tả hình ảnh ở đây


Để mở

Chuyển đến Dữ liệu - Nhận Dữ liệu Ngoài - Từ Văn bản

nhập mô tả hình ảnh ở đây

chọn tập tin

Chọn giới hạn , nhấn next nhập mô tả hình ảnh ở đây

và chọn dấu phân cách dấu phẩy

nhập mô tả hình ảnh ở đây

Nhấp vào kết thúc

nhập mô tả hình ảnh ở đây


Hoặc, kéo nó vào và sau đó sử dụng văn bản vào các cột xem tại đây


Nếu tôi đọc đúng câu hỏi, có vẻ như vấn đề đang tạo (lưu), một tệp được phân tách bằng dấu phẩy cho dấu phân cách (đoạn 2).
fixer1234

@ fixer1234 yeah đó là cách tôi đọc nó lúc đầu. Nhưng sau đó tôi nghĩ đoạn đầu tiên là đoạn quan trọng. Tôi không biết đó là chính xác. Dù bằng cách nào, tôi không có giải pháp nào cho việc sáng tạo ngoài những gì OP đã đề cập mà họ đã thử.
Raystafarian

Có, tôi đã thay đổi cài đặt khu vực trước khi lưu tệp. Nó không giúp được gì. Khi tôi nhận được tệp CSV từ những người khác được phân tách bằng dấu phẩy, sau đó tôi sử dụng phương pháp của bạn để nhập dữ liệu chính xác, sau đó tôi lưu và nó chuyển sang dấu chấm phẩy. Thật khó chịu vì mỗi lần tôi cần truy cập notepad và thay thế tất cả dấu chấm phẩy bằng dấu phẩy trước khi sử dụng CSV của tôi làm tệp nhập.
Sandra

0

Đây là một macro rất đẹp hoạt động khá tốt:

Sub saveCSV()
File = Application.GetSaveAsFilename(InitialFileName:="file.csv", FileFilter:="CSV (*.csv), *.csv")
ActiveWorkbook.SaveAs Filename:=File, FileFormat:=xlCSV, CreateBackup:=False, local:=False
End Sub

0

Điều này hơi cũ, nhưng tôi gặp phải một vấn đề tương tự:
Có một CSV được phân cách bằng dấu chấm phẩy ( ;). Cài đặt phân tách hệ thống (Windows) cũng được đặt thành dấu chấm phẩy.

  • Nếu tôi mở CSV theo cách thủ công, tệp sẽ được phân tách chính xác.
  • Nếu tôi để VBA mở nó, nó sẽ phân tách nó không chính xác bằng dấu phẩy.

Sử dụng Delimiter:=";"rõ ràng chỉ hoạt động với .txt.

TUY NHIÊN, sử dụng Local :=Truegiải quyết vấn đề cho tôi:

Workbooks.Open(Filename:=fullpath, Local:=True)
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.