Tại sao lại nói file định dạng csv lại đỡ tốn tài nguyên máy tính hơn file định dạng excel?

Mình đọc qua vài bài viết sự khác biệt csv và excel. Mình chú ý đoạn file csv đỡ tốn tài nguyên hơn file excel. Mình có kiểm tra thử trường hợp này thì thấy không phải. Mình lấy một file excel (có 1000 dòng và 20 cột) rồi mình lưu nó dưới dạng file csv thì mình thấy size csv vẫn lớn hơn size của excel. Thế thì kết luận lưu file định dang csv đỡ tốn tài nguyên gì ha ?

nếu bạn chỉ lấy file đơn giản 1k dòng và 20 cột ra để làm một sự so sánh, thì có cần thiết không, với những file như thế thì phần cứng ngày nay có vấn đề gì đâu
và csv với excel rõ ràng là dùng cho mục đích khác nhau, sao lại phải so sánh với nhau?

5 Likes

CSV là file text có cấu trúc, người và máy đều đọc được như file .txt, .json, .xml không phụ thuộc ngôn ngữ, phần mềm đọc. Còn file nhị phân excel là do Microsoft tạo ra dành riêng cho Office, giống như DayNhauHoc tạo ra file .DNH. Khác nhau về mục đích, nên so sánh dung lương không liên qua như bác bên trên nói.

Ohm, câu hỏi này thú vị đấy.
Nếu cậu chưa biết, file xlsx thực ra là file zip đấy :smile: Cậu có thể giải nén file đó để xem nội dung thực sự.

Có mấy lý do khiến cho file xlsx trong TH cậu nêu (không có format gì cho từng cell) nhỏ hơn file csv:

  • File xlsx đã được nén.
  • File xlsx có 1 file đóng vai trò string pool, tức là cậu sẽ map index của xâu với cell. Trong TH các xâu ở file của cậu lặp đi lặp lại, sử dụng string pool như xlsx sẽ giảm kích thước của file đi đáng kể.

Thông thường, cậu thường có format hay công thức cho các cell ở file xlsx. Những thông tin đó thực ra nặng hơn, và là lý do chính khiến file xlsx nặng hơn file csv (vốn không hỗ trợ công thức, hay cell reference). Tuy nhiên, TH cậu đưa ra không có sự xuất hiện của yếu tố đó.

Hope it helps!

See also:

7 Likes

Ví dụ với một table 20.000 x 20.000 có 10 ô có text:

File csv nó chỉ là file text thuần tuý, để giữ được cấu trúc dữ liệu của table nó phải lưu toàn bộ dữ liệu trong các ô của table kể cả những ô không có dữ liệu đi kèm dấu phân tách (, “,” tab)… Như vậy nó phải lưu ít nhất 400.000.000 cái dấu “,”

File excel là một loại file mã hoá có cấu trúc khác. Nó có thể định vị được vị trí dữ liệu nên nó chỉ cần lưu những ô có dữ liệu, các object… Nó chỉ cần lưu dữ liệu của 10 ô text.

Csv tốn ít dung lượng hơn excel tuỳ từng trường hợp, không phải quy tắc cố định.

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?