Tôi biết đây là một câu hỏi cũ, nhưng vấn đề sẽ không biến mất sớm. Các tệp CSV dễ dàng được tạo từ hầu hết các ngôn ngữ lập trình, khá nhỏ, có thể đọc được bằng con người trong một cuộc khủng hoảng với trình soạn thảo văn bản đơn giản và có mặt khắp nơi.
Vấn đề không chỉ là ngày tháng trong các trường văn bản, mà bất kỳ số nào cũng được chuyển đổi từ văn bản sang số. Một vài ví dụ trong đó có vấn đề:
- Mã bưu điện / bưu chính
- số điện thoại
- số ID chính phủ
mà đôi khi có thể bắt đầu bằng một hoặc nhiều số 0 (0), được bỏ đi khi chuyển thành số. Hoặc giá trị chứa các ký tự có thể bị nhầm lẫn với các toán tử toán học (như trong ngày: /, -).
Hai trường hợp mà tôi có thể nghĩ rằng giải pháp "trả trước =", như đã đề cập trước đây, có thể không lý tưởng là
- trong đó tệp có thể được nhập vào một chương trình không phải là MS Excel (chức năng Trộn thư của MS Word xuất hiện trong tâm trí),
- nơi mà khả năng đọc của con người có thể quan trọng.
Hack của tôi để làm việc xung quanh này
Nếu một trước / thêm một ký tự không phải là số và / hoặc không ngày trong giá trị, giá trị sẽ được nhận dạng dưới dạng văn bản và không được chuyển đổi. Một ký tự không in sẽ tốt vì nó sẽ không làm thay đổi giá trị được hiển thị. Tuy nhiên, ký tự không gian cũ đơn giản (\ s, ASCII 32) không hoạt động cho điều này vì nó bị băm nhỏ bởi Excel và sau đó giá trị vẫn được chuyển đổi. Nhưng có nhiều ký tự không gian in và không in khác sẽ hoạt động tốt. Tuy nhiên, cách dễ nhất là nối thêm (thêm sau) ký tự tab đơn giản (\ t, ASCII 9).
Lợi ích của phương pháp này:
- Có sẵn từ bàn phím hoặc với mã ASCII dễ nhớ (9),
- Nó không làm phiền việc nhập khẩu,
- Thông thường không làm phiền kết quả Trộn thư (tùy thuộc vào bố cục mẫu - nhưng thông thường, nó chỉ thêm một khoảng trống ở cuối dòng). (Nếu đây là một vấn đề, hãy xem các ký tự khác, ví dụ: không gian có độ rộng bằng không (ZWSP, Unicode U + 200B)
- không phải là trở ngại lớn khi xem CSV trong Notepad (v.v.),
- và có thể được xóa bằng cách tìm / thay thế trong Excel (hoặc Notepad, v.v.).
- Bạn không cần nhập CSV, nhưng chỉ cần nhấp đúp để mở CSV trong Excel.
Nếu có lý do bạn không muốn sử dụng tab, hãy tìm trong bảng Unicode để biết thứ gì khác phù hợp.
Một lựa chọn khác
có thể là để tạo các tệp XML, trong đó một định dạng nhất định cũng được chấp nhận để nhập bởi các phiên bản MS Excel mới hơn và cho phép nhiều tùy chọn tương tự như định dạng .XLS, nhưng tôi không có kinh nghiệm với điều này.
Vì vậy, có nhiều lựa chọn khác nhau. Tùy thuộc vào yêu cầu / ứng dụng của bạn, cái này có thể tốt hơn cái khác.
Thêm vào
Cần phải nói rằng các phiên bản mới hơn (2013+) của MS Excel không mở CSV ở định dạng bảng tính nữa - thêm một lần tăng tốc trong quy trình làm việc của một người làm cho Excel trở nên ít hữu ích hơn ... Ít nhất, tồn tại các hướng dẫn để giải quyết. Xem ví dụ: Stackoverflow này: Làm cách nào để hiển thị chính xác các tệp .csv trong Excel 2013?
.