Nhập Excel CSV xử lý các chuỗi số được trích dẫn dưới dạng giá trị số, không phải chuỗi


13

Tôi đã có một ứng dụng web đang xuất dữ liệu của nó sang tệp CSV. Dưới đây là một hàng mẫu của tệp CSV được đề cập:

28,"65154",02/21/2013 00:00,"false","0316295","8316012,8315844","MALE"

Vì tôi không thể đăng ảnh, tôi sẽ phải giải thích kết quả trong Excel. Trường "0316295" được chuyển thành số và số 0 đứng đầu biến mất. "8316012,8315844" được hiểu là một số duy nhất: 83,160,128,315,844. Đó là, rõ ràng nhất, không phải là kết quả dự định.

Tôi đã thấy mọi người đề xuất một trích dẫn hàng đầu cho những trường hợp như vậy, nhưng điều đó cũng không thực sự hiệu quả.

28,"65154",02/21/2013 00:00,"false","'0316295","'8316012,8315844","MALE"

Báo giá duy nhất có thể nhìn thấy mọi lúc trong ô trong Excel, mặc dù nếu tôi tự nhập một số với một trích dẫn duy nhất, nó chỉ hiển thị chuỗi dự định và không phải là trích dẫn đơn với chuỗi.

Nhập khẩu không giống như gõ, có vẻ như.

Bất cứ ai có một giải pháp ở đây?


Bạn có thể nhập nó bằng LibreOffice hoặc một cái gì đó của ilk đó không? Tôi vừa nhập và đã nhận: 28 65154 02/21/2013 00:00 false 0316295 8316012,8315844 MALE (nếu bạn có thể đọc ...?)
FreudianSlip

Câu hỏi này tương tự và cung cấp một số giải pháp tốt: superuser.com/questions/234997/ Khăn
Brad Patton

@FreudianSlip Không, chúng tôi không thể sử dụng một số giải pháp của bên thứ 3. Người dùng nhấp vào nút "tải xuống CSV" và tệp sẽ mở trong Excel. Đó là môi trường chúng ta đang đối phó. Không thể thực sự làm phức tạp nó.
Michael Oryl

@Brad Tôi đọc bài đăng đó trước đó để tìm giải pháp. Đó là nơi tôi có tùy chọn trích dẫn duy nhất, điều mà tôi thực sự không thích vì Excel hiển thị trích dẫn trong chính ô khi được nhập từ CSV (ngay cả khi nó không hiển thị nếu bạn tự nhập cùng một thứ).
Michael Oryl

vậy bạn có kiểm soát ứng dụng web ít nhất không? Làm thế nào bạn sẽ thực hiện các giải pháp minh bạch từ người dùng? Tôi đã cập nhật câu trả lời của mình để nó xử lý đúng các giá trị bằng dấu phẩy
Alex P.

Câu trả lời:


10

Điều này sẽ làm việc

28,"65154",02/21/2013 00:00,"false",="0316295","=""8316012,8315844""","MALE"

Không, điều đó mang giá trị với hai số trong đó. Tuy nhiên, chúng tôi nhận được = "1234567 mà không có trích dẫn kết thúc. Tuy nhiên, nó hoạt động với những con số đơn giản hơn.
Michael Oryl

1
nếu bạn kiểm soát ứng dụng web, bạn có thể thực hiện xuất sang định dạng SYLK en.wikipedia.org/wiki/SYmbolic_LinK_(SYLK) . nó có khả năng kiểm soát dữ liệu đại diện tốt hơn nhiều. nếu không - bạn có thể dễ dàng tạo một tập lệnh chuyển đổi
Alex P.

2
đã cập nhật câu trả lời để nó xử lý đúng các giá trị bằng dấu phẩy
Alex P.

Điều đó xử lý các giá trị được phân tách bằng dấu phẩy đúng cách. Cảm ơn.
Michael Oryl

cảm ơn. Giải pháp này cũng giải quyết được vấn đề với việc nhập số thập lục phân. Excel thay thế 00E3bằng 0 (0 * 10 ^ 3) và hiển thị dưới dạng ký hiệu sci (0,00E + 00). Nó thực sự làm như vậy cho "00e3"mà không có =. Nhưng ="00e3"hoạt động hoàn hảo. (mở CSV bằng Excel 2010)
mpag 23/2/2016

12

Để giữ số 0 đứng đầu, bạn có thể đặt định dạng của cột cụ thể đó thành Văn bản trong Trình hướng dẫn Nhập văn bản.

  1. Bắt đầu Trình hướng dẫn Nhập văn bản bằng cách chuyển đến tab Dữ liệu & nhấp vào Từ Văn bản .
  2. Chọn tệp CSV bạn muốn nhập.
  3. Chọn Phân cách & nhấn Tiếp theo .
  4. Bỏ chọn Tab (mặc định). Chọn dấu phẩy . Đảm bảo Trình định dạng văn bản được đặt thành ". Nhấn tiếp theo .
  5. Đây là nơi bạn có thể chỉ định các định dạng . Nhấp vào tiêu đề của cột có số 0 hàng đầu mà bạn muốn giữ. Chọn văn bản . (Xem hình dưới đây)

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

  6. Nhấn Kết thúc & sau đó chọn một vị trí phù hợp cho dữ liệu của bạn. Kết quả mẫu:

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

Chỉnh sửa : Có một cách khác ; có ứng dụng web xuất sang tệp .TXT được phân tách bằng dấu phẩy thay vì .CSV (hoặc chỉ thay đổi phần mở rộng tệp của tệp đã xuất sau khi lưu tệp). Điều này buộc Excel phải thông qua trình hướng dẫn nhập khi họ mở tệp. Là một lợi thế bổ sung, nó làm giảm cơ hội người dùng sửa đổi hoặc giả mạo dữ liệu thô ban đầu của bạn.


1
Vâng, điều đó chắc chắn đúng. Thật không tiện cho người dùng cuối khi so sánh, tất cả những gì họ phải làm là nhấp vào liên kết của trình tạo CSV trên ứng dụng web của chúng tôi và Excel sẽ tự động tải nó - mặc dù có các vấn đề được đề cập ở trên. Các tệp CSV được đặt để mở trong Excel và Excel không cung cấp bất kỳ tùy chọn nào tại thời điểm đó. Nó chỉ tải chúng. Tôi đánh giá cao bạn chỉ ra rằng, mặc dù.
Michael Oryl

1
Có một cách khác, nhưng tôi không biết liệu trong trường hợp của bạn có thể xảy ra hay không: hãy xuất ứng dụng web thành dấu phẩy .TXTthay vì .CSV(hoặc chỉ thay đổi phần mở rộng tệp của tệp đã xuất). Kiểu "buộc" người dùng này phải thông qua trình hướng dẫn nhập khi họ mở tệp.
Ellesa

Đó là một điểm rất tốt. Cảm ơn đã chỉ ra rằng. Nó có thể hữu ích trong tương lai.
Michael Oryl

4

Excel xử lý các giá trị số bắt đầu bằng ký tự tab dưới dạng văn bản.

<tabchar>000000100000200000,ABC,DEF

Sẽ xuất hiện dưới dạng:

000000100000200000|ABC|DEF

| là ranh giới tế bào (cho mục đích minh họa). Vì vậy, ví dụ: nếu hệ thống của bạn tạo tệp CSV bằng bộ ký tự utf-8, bạn có thể thêm &#x0009;(Tab Char in Hex) trước giá trị số của mình để buộc excel diễn giải nó dưới dạng văn bản.


Xóa khoảng trắng trước dấu chấm phẩy trong biểu diễn Hex. Tôi không biết làm thế nào để thoát khỏi ký tự Hex Tab trong câu trả lời, vì vậy tôi đã cố tình gõ sai.
Madeyedexter

1
Tôi đã trốn thoát. Và tôi đã học được một cái gì đó mới, cảm ơn bạn. Tôi phải thêm chủ đề này vào chủ đề yêu thích của mình cho công việc :)
nixda

3

Excel sẽ tự động phát hiện định dạng của trường CSV trừ khi cột CSV ở định dạng này:

"=""Data Here"""

Điều này cũng hoạt động cho các tờ Google


0

Bạn sẽ phải sử dụng chức năng "Dữ liệu -> Nhận dữ liệu ngoài -> Nhập văn bản từ tệp" trong Excel để hiển thị dưới dạng văn bản. Đây là trình hướng dẫn nhập văn bản @Kaze đã đề cập.

Cách duy nhất để buộc excel hiển thị số dưới dạng văn bản từ đầu vào, mà người dùng không phải làm gì, là xuất ra tệp excel và chỉ định "định dạng số tùy chỉnh" trong đó. Tôi khuyên bạn nên sử dụng thư viện xuất XLS cho việc này, vì việc này có vẻ không đơn giản bằng việc thêm một dòng văn bản cấu hình vào tệp CSV.


0

thử chức năng dọn dẹp cho các giá trị bị rối tung. Ví dụ = sạch ("12345678901234567890"). Nó hoạt động với tôi về số lượng, ngày tháng, thời gian, v.v. Tôi sẽ cảnh báo rằng vì đây không phải là mục đích của chức năng này mà nó có thể ngừng hoạt động với các phiên bản mới, v.v.

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.