Chuyển từ bảng CSV sang các cột văn bản

Đôi khi bạn cần sắp xếp dữ liệu thành các cột dễ đọc mà không dùng Markdown, HTML hay bảng tính: chẳng hạn một khối mã trong README, một báo cáo phù hợp với terminal, hoặc một email văn bản thuần gửi đội ngũ vận hành. Công cụ chuyển đổi này đọc dữ liệu CSV (hoặc phân tách bằng tab, dấu chấm phẩy hoặc dấu gạch đứng), rồi tạo các cột được lấp đầy bằng khoảng trắng sao cho mỗi ô được đệm đến chiều rộng của ô rộng nhất trong cột đó. Kết quả sẽ căn thẳng hàng hoàn hảo khi hiển thị bằng phông chữ đơn cách (monospace).

Cách căn chỉnh các cột

  1. 1

    Dán dữ liệu

    Mọi dấu phân tách tệp phẳng thông dụng đều dùng được: dấu phẩy, tab, dấu chấm phẩy hoặc dấu gạch đứng.

  2. 2

    Chọn ký tự phân cách

    Công cụ này phân tích các ô được đặt trong ngoặc kép với định dạng `str_getcsv`, do đó các dấu phân cách được nhúng bên trong ngoặc kép sẽ được giữ nguyên.

  3. 3

    Chiều rộng các cột được đo

    Đối với mỗi cột, bộ chuyển đổi sẽ xác định ô có chiều rộng lớn nhất trong tất cả các hàng và lưu giá trị đó làm chiều rộng mục tiêu.

  4. 4

    Các ô được đệm bằng khoảng trắng

    Mỗi ô được đệm khoảng trắng ở bên phải cho đến khi đạt chiều rộng của cột; các cột được nối với nhau bằng hai khoảng trắng.

Tại sao khái niệm “monospace” lại quan trọng đối với kết quả này?

Phương thức căn chỉnh có khoảng trắng giữa các ký tự chỉ hoạt động được khi mọi ký tự đều có cùng độ rộng. Trong các phông chữ tỷ lệ (như Helvetica, Arial hoặc văn bản chính trong blog), ký tự i chiếm ít không gian ngang hơn so với ký tự M; do đó, các cột có thể trông không căn chỉnh đúng dù mỗi ô đều chứa cùng số lượng ký tự khoảng trắng.

Nơi mà nó hiển thị đúng

  • Các khối mã Markdown ( ``` )
  • Các phần tử HTML <pre><code>
  • Đầu ra terminal, các tệp nhật ký
  • Các trường văn bản định dạng được đặt ở chế độ monospace (hầu hết các IDE, phần nội dung issue trên Gitea)

Nơi mà nó trông như bị hỏng

  • Các đoạn văn thông thường trong bài viết blog
  • Gmail và hầu hết các ứng dụng email (họ sử dụng kiểu chữ tỷ lệ tương ứng mặc định)
  • Tin nhắn Slack nằm ngoài dấu backtick
  • Các khối văn bản đơn giản của Notion

Các phương án thay thế cho văn bản dòng dễ đọc

Kết quả mong muốn Công cụ nên dùng
Trang web Chuyển tệp CSV thành bảng HTML
README của GitHub Chuyển đổi từ CSV sang Markdown
Bảng tính Chuyển từ CSV sang Excel
Nội dung API Chuyển đổi từ CSV sang JSON

Những mẹo nhỏ

  • Ô ngắn sẽ tốt hơn. Giá trị quá dài sẽ khiến cột trở nên cực kỳ rộng. Hãy cắt ngắn văn bản dài trước, hoặc để nó tự xuống dòng bằng cách xử lý kết quả đầu ra theo từng dòng.
  • Căn chỉnh bằng tab là chuyện khác. Nếu bạn cần kết quả phân tách bằng \t để dán vào bảng tính, hãy bỏ qua công cụ này và dùng cách xuất TSV thông thường; dù sao thì trong bảng tính việc căn chỉnh cũng sẽ bị vỡ.
  • Ký tự Unicode rộng được đếm theo cách khác. Bộ chuyển đổi dùng mb_strlen để đếm điểm mã. Về mặt kỹ thuật, ký tự CJK rộng gấp đôi sẽ rộng hơn số ký tự cho thấy, và trong một số terminal chúng có thể bị lệch về mặt hiển thị.

Câu hỏi thường gặp

Công cụ sẽ lấp đầy các ô bằng ký tự khoảng trắng. Trong các kiểu chữ tỷ lệ, ký tự i chiếm ít không gian ngang hơn ký tự M; do đó, mặc dù số lượng ký tự khoảng trắng là chính xác, các điểm ảnh vẫn không trùng khớp. Hãy hiển thị nội dung bên trong khối mã hoặc thiết lập kiểu chữ thành kiểu không gian đều (monospace).

Không trực tiếp – công cụ này sử dụng khoảng trắng kép làm dấu phân cách. Để tạo giao diện trình bày được căn chỉnh và được phân tách bằng các đường ống, hãy thực hiện xử lý sau bằng cách thay thế khoảng trắng kép bằng |; hoặc sử dụng Bộ chuyển đổi CSV sang Markdown để tạo bảng theo định dạng GFM.

Các ô bị thiếu được lấp đầy theo chiều rộng cột bằng khoảng trắng, nhờ đó kết quả đầu ra vẫn giữ hình chữ nhật và căn chỉnh đều đặn.

Có. Văn bản bạn dán được gửi đến máy chủ của chúng tôi để công cụ có thể căn chỉnh các cột. Dữ liệu không được lưu trữ và không được thêm vào liên kết trang.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác