Làm cách nào để tránh dấu ngoặc kép khi lưu tệp Excel dưới dạng Unicode?


9

Tôi có một tệp Excel có nội dung Unicode, trong đó một số ô chứa văn bản bên trong dấu ngoặc kép chẳng hạn "text".

Khi tôi lưu tệp Excel vào một tệp văn bản ở định dạng Unicode, ví dụ, văn bản chứa trích dẫn kép được lưu dưới dạng ba dấu ngoặc kép """text""".

Có một số nơi tôi thậm chí có văn bản chứa dấu phẩy (,). Ví dụ, text,được chuyển đổi thành "text,"tệp Unicode. Nó đang thêm dấu ngoặc kép vào văn bản, mà tôi đoán có chứa các ký tự đặc biệt.

Làm thế nào tôi có thể tránh điều này?

Câu trả lời:


7

Đây là hành vi tiêu chuẩn (và tương tự như cách lưu tệp CSV). Xem RFC 4180 - Định dạng chung và Loại MIME cho các tệp Giá trị được phân tách bằng dấu phẩy (CSV) :

Nếu dấu ngoặc kép được sử dụng để bao quanh các trường, thì dấu ngoặc kép xuất hiện bên trong một trường phải được thoát bằng cách đặt trước nó bằng dấu ngoặc kép khác.

Làm thế nào mà áp dụng cho trường hợp của bạn?

  • Điều này có nghĩa là "Text" phải được lưu dưới dạng """Text""", các trích dẫn bên ngoài phân định trường và hai dấu ngoặc kép khác được sử dụng để thoát các trích dẫn thực tế bạn đã sử dụng cho trường văn bản của mình. Nếu không, "Text"sẽ chỉ được phân tích cú pháp Textvà bạn sẽ mất dấu ngoặc kép khi mở lại tệp.

  • Excel cũng chọn trích dẫn Text,, vì dấu phẩy được sử dụng làm dấu phân cách trong các tệp được phân tách bằng dấu phẩy và không đặt nó trong dấu ngoặc kép có nghĩa text,là được phân tách thành hai trường khi bạn mở lại tệp.

Nếu bạn không muốn chúng ở đầu ra của mình, hãy xem xét mở các tệp kết quả trong trình chỉnh sửa văn bản và xóa tất cả các trích dẫn bằng một tìm kiếm và thay thế đơn giản.


2
Bạn có nghĩa là không có cách nào khác để giải quyết vấn đề ngoài việc thay thế chúng trong trình soạn thảo văn bản.
karthik

Không thực sự, vì Excel phải làm điều đó vì lý do tương thích. Có thể có thể đưa ra một Macro có thể xuất tùy chỉnh, nhưng tôi không phải là chuyên gia về vấn đề này.
slhck

Ok cảm ơn có thể tôi sẽ cố gắng thay thế nó trong phần mã hóa.
karthik

@slhck: Tôi đang gặp vấn đề khi lưu Unicode dưới dạng CSV vào năm 2010 superuser.com/q/1210099/234380
NJMR

3

Tôi cũng có vấn đề này. Sau đó, tôi nhận thấy tôi đang xem tùy chọn Lưu dưới dạng: " Văn bản được định dạng (Phân cách không gian) ". Bạn cũng phải xác định. tiện ích mở rộng txt hoặc nó sẽ mặc định với tiện ích mở rộng .prn. Ví dụ: filename.txt thay vì chỉ tên tệp. Hãy thử nó . Nó hoạt động .


Sẽ được phân cách bằng không gian thay vì được phân định bằng tab và các cột dường như bị giới hạn về chiều rộng chỉ còn khoảng 8 ký tự.
JosiahYoder-deactive ngoại trừ ..

Điều này không hoạt động nếu các tế bào có chứa một cái gì đó như "A short sentence". Câu trả lời của Pete dưới đây là người duy nhất làm việc cho tôi.
Micah Lindstrom

2

Lưu vào Unicode dường như thêm vào dấu ngoặc kép ngay cả khi không có dấu ngoặc kép trong chuỗi của tôi. Đây là cách tôi đi xung quanh nó:

  1. Tìm một chuỗi không có trong tệp của bạn (tôi đã sử dụng xxx).
  2. Trước khi xuất, Tìm & Thay thế Tất cả dấu ngoặc kép "bằngxxx
  3. Xuất tệp của bạn sang txt hoặc csv.
  4. Mở tệp txt và Tìm & Thay thế Tất cả dấu ngoặc kép không có gì
  5. Tìm và thay thế tất cả xxxbằng dấu ngoặc kép

Lưu ý, sử dụng replacementkhông 'replacement'. Thay thế các trích dẫn kép bằng một cái gì đó bao gồm một trích dẫn duy nhất gây ra vấn đề nếu nó xảy ra ở đầu một ô. Về cơ bản, Excel nhìn thấy một trích dẫn khi bắt đầu một ô có nghĩa là diễn giải nó dưới dạng văn bản, do đó, nó bị xóa khi bạn xuất sang txt / csv. Tôi tìm thấy điều này một cách khó khăn lol.
Micah Lindstrom

0

Chỉ cần dễ dàng lưu tệp của bạn dưới dạng không gian deliated.prn trong excel và sau đó đổi tên thành .txt. Tôi đã sử dụng điều này cho một cuộc khủng hoảng 18000 hàng. ;)

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.