Tôi có một cơ sở dữ liệu theo dõi doanh số của các vật dụng theo số sê-ri. Người dùng nhập dữ liệu và số lượng người mua và quét từng tiện ích vào một chương trình khách hàng tùy chỉnh. Sau đó họ hoàn tất đơn hàng. Tất cả điều này hoạt động hoàn hảo.
Một số khách hàng muốn có bảng tính tương thích với Excel của các vật dụng họ đã mua. Chúng tôi tạo ra điều này với một tập lệnh PHP truy vấn cơ sở dữ liệu và đưa ra kết quả dưới dạng CSV với tên cửa hàng và dữ liệu liên quan. Điều này cũng hoạt động hoàn toàn tốt.
Khi được mở trong trình soạn thảo văn bản như Notepad hoặc vi, tệp sẽ trông như thế này:
"Account Number","Store Name","S1","S2","S3","Widget Type","Date"
"4173","SpeedyCorp","268435459705526269","","268435459705526269","848 Model Widget","2011-01-17"
Như bạn có thể thấy, các số sê-ri có mặt (trong trường hợp này là hai lần, không phải tất cả các sê-ri thứ cấp đều giống nhau) và là các chuỗi số dài. Khi tệp này được mở trong Excel, kết quả sẽ trở thành:
Account Number Store Name S1 S2 S3 Widget Type Date
4173 SpeedyCorp 2.68435E+17 2.68435E+17 848 Model Widget 2011-01-17
Như bạn có thể đã quan sát, các số sê-ri được bao quanh bởi dấu ngoặc kép. Excel dường như không tôn trọng vòng loại văn bản trong các tệp .csv. Khi nhập các tệp này vào Access, chúng tôi không gặp khó khăn gì. Khi mở chúng dưới dạng văn bản, không có rắc rối nào cả. Nhưng Excel, không có lỗi, chuyển đổi các tệp này thành rác vô dụng. Cố gắng hướng dẫn người dùng cuối trong nghệ thuật mở tệp CSV bằng ứng dụng không mặc định đang trở nên mệt mỏi. Có hy vọng không? Có cài đặt nào tôi không thể tìm thấy không? Đây có vẻ là trường hợp của Excel 2003, 2007 và 2010.
Excel does not seem to respect text qualifiers in .csv files
- dấu ngoặc kép không phải là vòng loại văn bản, chúng chỉ đơn giản cho phép dấu phẩy trong dữ liệu của bạn, nếu bạn không sử dụng dấu phẩy trong dữ liệu của mình thì chúng là vô nghĩa . Tất cả dữ liệu trong tệp CSV không được nhập, do đó Excel chỉ có thể đoán rằng số sê-ri lớn của bạn là một số và đó là khi bạn chạy đến độ chính xác tối đa 15 chữ số của Excel , đó là số bị cắt bớt số của bạn.