2012-01-06 39 views
9

trong khi làm việc trên một xuất khẩu sang Excel Tôi phát hiện ra vấn đề sau.Nhập tệp txt với ngắt dòng vào Excel

Nếu bạn tạo một bảng mà một tế bào có một ngắt dòng và bạn lưu tài liệu dưới dạng file txt nó sẽ giống như thế này:

"firstLine<LF>secondLine"<TAB>"secondColoumn" 

Khi tôi mở tập tin này trong Excel các ngắt dòng là ra đi và hàng đầu tiên chỉ có một ô có giá trị firstLine

Bạn có biết rằng bằng cách nào đó có thể giữ ngắt dòng không?

CHỈNH SỬA: Áp dụng cho Excel2010. Không biết liệu các phiên bản khác có hoạt động khác không.

EDIT2: Các bước để tạo:

  1. mở trống nổi trội tấm
  2. Nhập văn bản (cột đầu tiên với ngắt dòng, cột thứ hai không quan trọng)
  3. Save as Unicode Text (txt) // tất cả txt khác không hoạt động tốt
  4. Đóng tệp Excel
  5. Tệp-> Mở
  6. Không có thay đổi trong hộp thoại sắp tới.

Tệp excel hiện có 2 hàng sai.

+0

Tôi đang cố gắng tái tạo các bước của bạn. Bạn đang tạo bảng ở đâu? Trong Excel? Loại bạn đang lưu nó như - Văn bản (tab delim), MS-DOS Text, văn bản Unicode, cái gì khác? Làm thế nào để bạn "mở" tập tin? Nhập nó, kéo và thả vào Excel, hoặc đi đến 'File> Open'? – JimmyPena

+0

Tôi đã thêm các bước cho bạn. – T3rm1

+0

Và bạn đang nhấn 'Alt + Enter' để ngắt dòng, đúng không? – JimmyPena

Trả lời

5

tôi cuối cùng đã có thể giải quyết vấn đề! yay: D

CSV:

Excel Đức cần dấu chấm phẩy làm dấu phân cách. Dấu phẩy không hoạt động.

Lưu ý: Điều này chỉ đúng khi tệp được mã hóa dưới dạng UTF-8 với BOM ở đầu tệp. Nếu đó là dấu phẩy được mã hóa ASCII thì hoạt động như một dấu phân cách.

TXT:

Mã hóa phải là UTF-16LE. Ngoài ra nó cần phải được phân cách tab.

Quan trọng: Tệp sẽ vẫn hiển thị không chính xác nếu bạn mở chúng bằng hộp thoại "Tệp-> Mở" và "nhập" chúng. Kéo chúng vào Excel hoặc mở bằng công cụ nhấp đúp.

+0

Nhưng, sẽ khiến Excel loại bỏ bất kỳ số 0 đầu tiên nào từ các ô không chứa bất kỳ ký tự không phải là số. –

1

Nó không phải là một vấn đề - theo nghĩa của hành vi dự kiến ​​- đây là vốn có khi bạn lưu văn bản như Unicode hoặc như Text (tab delimited)

Nếu bạn lưu các tập tin như unicode và sau đó một trong hai

  1. mở nó trong Notepad
  2. nhập nó trong Excel

bạn sẽ thấy rằng các tế bào với linebreaks được bao quanh bởi ""

Ví dụ dưới đây cho thấy hai linebreaks

  • A1 có một mục tách bằng Alt + Enter
  • B1 có enry sử dụng công thức CHAR(10) initial

Bức tranh cũng cho thấy những gì notepad thấy trên một phiên bản đã lưu Unicode

đề nghị Giải pháp 1- Hướng dẫn sử dụng Phương pháp

  1. Trong Excel, chọn Edit> Replace
  2. Bấm vào hộp Find What
  3. Giữ phím Alt, và (trên bàn phím số), loại 0010 step 3
  4. Replace with một ống delimiter đôi

    Step 4

  5. Save as Unicode
  6. Sau đó đảo ngược quá trình khi cần thiết để lắp lại linebreaks

Điều này có thể được thực hiện dễ dàng trong VBA

Cách giải quyết đề nghị 2 - VBA thay thế

Const strDelim = "||" 

Sub LBtoPIPE() 
ActiveSheet.UsedRange.Replace Chr(10), strDelim, xlPart 
ActiveSheet.UsedRange.Replace "CHAR(10)", strDelim, xlPart 
End Sub 

Sub PIPEtoLB() 
ActiveSheet.UsedRange.Replace strDelim, Chr(10), xlPart 
ActiveSheet.UsedRange.Replace strDelim, "CHAR(10)", xlPart 
End Sub 
+0

Cảm ơn câu trả lời của bạn. Thật không may tôi không thể làm việc với một workaround. Tôi đã hy vọng rằng nó là một lỗi Excel hoặc một số cài đặt sai về phía tôi. Để tâm trí của tôi hành vi này là sai. Nếu tôi lưu tệp có dấu ngắt dòng, chúng sẽ vẫn xuất hiện khi tải:/ – T3rm1

+0

@ T3rm1 Không có phần mềm. Tôi tò mò là tại sao bạn không thể triển khai giải pháp thay thế? – brettdj

+0

Cả hai phương pháp đều yêu cầu người dùng làm điều gì đó mà bạn thường nghĩ rằng "chỉ nên hoạt động". – T3rm1

Các vấn đề liên quan