XLSX sang CSV bằng Python

Xlsx Sang Csv Bang Python



Trong những năm gần đây, Python đã trở thành một trong những ngôn ngữ lập trình thống trị. Cộng đồng Python đã mở rộng đáng kể nhờ sự phổ biến và tiện ích của Python. Chúng tôi sẽ đi vào chi tiết trong bài viết này về cách sử dụng Python để chuyển đổi XLSX sang CSV. Chúng tôi biết rằng các tệp excel thường được sử dụng để thực hiện phân tích tài chính, sắp xếp dữ liệu, nhập dữ liệu, kế toán, quản lý dữ liệu, tạo biểu đồ và đồ thị, v.v. Tuy nhiên, chúng tôi chủ yếu thích sử dụng tệp CSV để nhập và xuất dữ liệu. Đó là một cách tiếp cận là chuyển dữ liệu có cấu trúc bằng tệp văn bản thuần túy.

Tệp Xslx là gì?

Khi tạo bảng tính trong các phiên bản Excel mới nhất, Microsoft sử dụng tệp XLSX làm loại tệp mặc định. Tương tự như loại tệp DOCX của Word, chúng ta có thể mở tệp XLSX bằng nhiều ứng dụng/chương trình khác nhau.

Tệp CSV là gì?

Định dạng tệp CSV là những gì chúng ta có thể sử dụng để lưu trữ các giá trị dữ liệu dạng bảng trong bảng tính và cơ sở dữ liệu. Dữ liệu dạng bảng, văn bản hoặc văn bản, được lưu trữ dưới dạng văn bản thuần túy trong tệp CSV. Bản ghi trong tệp CSV là giá trị dữ liệu được lưu trữ trên mỗi hàng của tệp. Mỗi bản ghi có thể có nhiều trường được phân tách bằng dấu phẩy.







Sự khác biệt chính giữa tệp XLSX và tệp CSV

Người dùng thường sử dụng CSV và XLSX thay thế cho nhau và họ thường không biết về sự khác biệt giữa chúng, đặc điểm cơ bản của chúng và cách chúng hoạt động. Nó chỉ phục vụ như một nguồn thông tin cho người dùng. Gần như mọi doanh nghiệp và công ty đều sử dụng cả hai để hỗ trợ người dùng quản lý, cập nhật và lưu trữ dữ liệu cho người dùng. Sau đây là một số điểm khác biệt chính giữa tệp XLSX và tệp CSV mà bạn nên biết:



  • Định dạng CSV lưu dữ liệu dạng bảng vào tệp văn bản có dấu phân cách với phần mở rộng .csv. Trong khi đó, tệp excel hoặc XLSX là một bảng tính lưu trữ các tệp ở định dạng độc quyền của nó, viz. xls hoặc XLSX.
  • Tệp Excel là tệp nhị phân chứa dữ liệu trên mọi trang tính trong sổ làm việc. Trong khi đó, CSV là một định dạng văn bản thuần túy và đơn giản với một chuỗi các giá trị dữ liệu được phân tách bằng dấu phẩy.
  • Không thể thực hiện thao tác dữ liệu trên tệp CSV. Tuy nhiên, chúng có thể được thực hiện trên các tệp Excel.
  • Các tệp CSV nhanh hơn và sử dụng ít bộ nhớ hơn các tệp XLSX. Tuy nhiên, Excel sử dụng nhiều bộ nhớ hơn khi nhập dữ liệu.
  • Nếu chúng tôi so sánh CSV với Excel, chúng tôi có thể mở tệp CSV trong bất kỳ trình soạn thảo văn bản Windows nào trong khi tệp Excel thì không thể.

Làm cách nào một tệp XLSX có thể được chuyển đổi thành CSV bằng Python?

Tệp XLSX có thể được chuyển đổi thành tệp CSV trong Python bằng nhiều phương pháp. Python bao gồm nhiều mô-đun và chức năng có thể hỗ trợ chúng ta hoàn thành nhiệm vụ này. Tại đây, chúng ta sẽ tìm hiểu một số phương pháp có thể được sử dụng để chuyển đổi tệp XLSX thành tệp CSV trong Python.



Điều kiện tiên quyết để thực hiện chuyển đổi Excel sang CSV

Cài đặt các yêu cầu là bước đầu tiên. Chúng tôi sử dụng các mô-đun như kết hợp Pandas, CSV và Openpyxl, v.v. trong hướng dẫn này. Gói Pandas của Python cho phép thao tác và phân tích dữ liệu. Pandas là một thư viện nổi tiếng với các lập trình viên Python. Các tệp Excel có thể được đọc và ghi bằng gói Python được gọi là Openpyxl. Chúng tôi sẽ không giao dịch trực tiếp với thư viện này. Thay vào đó, gấu trúc sử dụng Openpyxl trong nội bộ.





Sử dụng kho lưu trữ PyPI, chúng tôi có thể cài đặt cả hai gói:

Phương pháp 1: Chuyển đổi XLSX sang CSV bằng Mô-đun Pandas

Ví dụ 1: Chuyển đổi một tệp XLSX sang CSV



Pandas là một mô-đun nguồn mở được tạo cho ngôn ngữ lập trình Python để thao tác và phân tích dữ liệu. Để làm việc với chuỗi thời gian và bảng số, Pandas cung cấp nhiều chức năng và tính năng. Sử dụng gấu trúc, cả tập dữ liệu nhỏ và lớn đều có thể được đọc, lọc và sắp xếp lại. Và kết quả có thể được tạo ở nhiều định dạng như Excel, JSON và CSV. Chúng tôi sử dụng phương thức read_excel() của Pandas để đọc tệp excel và phương thức to_csv() để chuyển đổi DataFrame thành tệp CSV.

Chúng tôi in tệp .csv của mình dưới dạng DataFrame như có thể thấy ở đầu ra. Tập lệnh trước chuyển đổi tệp XLSX của chúng tôi thành CSV và tạo tệp “salary.csv” trong thư mục hiện tại.

Ví dụ 2: Chuyển đổi tệp XLSX (có nhiều trang tính) sang CSV

Trong ví dụ sau, trước tiên chúng ta đọc tên trang tính của tệp Excel. Sau đó, tên của các trang tính riêng lẻ sẽ được lặp lại và lưu dưới dạng tệp CSV riêng biệt. Tập lệnh lưu CSV ở cùng một vị trí.

Chúng tôi sử dụng tệp XLSX mẫu có hai trang tính hoặc bảng tính trở lên.

Có thể thấy, file XLSX của chúng ta bao gồm 2 sheet (sheet1 và sheet2). Bây giờ, chúng tôi viết mã để chuyển đổi tệp XLSX này thành CSV.

Đầu ra:

Tập lệnh đã chuyển đổi thành công tệp XLSX có hai trang tính thành một tệp CSV duy nhất có một trang tính.

Ví dụ 3: Chuyển đổi nhiều tệp XLSX thành các tệp CSV riêng biệt

Hãy xem xét một tình huống trong đó bạn yêu cầu chuyển đổi một số tệp Excel trong thư mục làm việc của mình thành CSV. Bạn có thể sử dụng phương pháp này. Chúng tôi bắt đầu bằng cách giả sử rằng mỗi tệp chỉ chứa một trang tính. Sau đó, chúng tôi mở rộng phương pháp của mình để xử lý nhiều tệp và một số trang tính. Mã Python sau sử dụng mô-đun tiêu chuẩn chung. Chúng tôi khớp các đường dẫn tệp bằng cách sử dụng các mẫu với Glob. Nó khớp với tất cả các tệp có phần mở rộng .xlsx trong thư mục làm việc. Sau đó, chúng tôi phát triển một chức năng đọc các tệp Excel và lưu chúng dưới dạng tệp CSV. Chúng tôi gọi chức năng này trên mỗi đường dẫn tệp được tìm thấy.

Tập lệnh trước này chuyển đổi tất cả các tệp xlsx trong thư mục hiện tại thành tệp CSV.

Bây giờ, chúng tôi chuyển đổi các tệp XLSX có nhiều bảng tính thành CSV. Đây rất có thể là phần khó khăn. Ba tệp Excel nằm trong thư mục làm việc của chúng tôi. Ngoài ra, một số trong số chúng bao gồm nhiều hơn một tờ. Chúng tôi nhắm tới:

  1. Tạo một thư mục cho mỗi tệp bảng tính,
  2. Chuyển đổi các trang tính của tệp excel thành CSV và chúng sẽ được giữ trong thư mục mới được tạo.

Tập lệnh chuyển đổi XLSX với một trang tính và nhiều trang tính thành các tệp CSV riêng biệt và lưu trữ chúng trong các thư mục mới có cùng tên.

Để truy xuất mọi tệp Excel nằm trong thư mục hiện tại, hàm toàn cầu được sử dụng. Sau đó, các thư mục được tạo cho từng tệp XLSX bằng hàm os.mkdir. Sau đó, một tệp CSV được tạo cho từng trang tính bên trong thư mục mới bằng cách lặp qua tên trang tính.

Phương pháp 2: Chuyển đổi XLSX sang CSV bằng Mô-đun Openpyxl và CSV

Trong phương pháp này, chúng tôi sẽ sử dụng mô-đun openpyxl và CSV để chuyển đổi tệp XLSX thành CSV. Để đọc và ghi các tệp xlsx, xlsm, xltx và xltm 2010, có thể sử dụng mô-đun Python openpyxl. Mô-đun CSV bao gồm các lớp cho phép đọc và ghi dữ liệu dạng bảng có định dạng CSV.

Để đọc hoặc tải tệp xlsx của chúng tôi, chúng tôi sử dụng hàm load_workbook() của mô-đun openpyxl. Bạn có thể sử dụng chức năng này nếu bạn cần viết hoặc đọc tệp XLSX/Excel hiện có bằng Python. Sau khi kích hoạt excel, chúng tôi sử dụng hàm csv.writer() để tạo tệp CSV của mình. Sau đó, vòng lặp for được sử dụng để lưu trữ dữ liệu trong các ô dữ liệu của tệp CSV. Chúng tôi chuyển đổi tệp example.xlsx của mình thành myfile.csv như trong hình ảnh sau:

Sự kết luận

Trong hướng dẫn này, chúng tôi đã giới thiệu ngắn gọn cho bạn về tệp XLSX và tệp CSV. Chúng tôi đã giải thích sự khác biệt chính giữa cả hai định dạng tệp. Chúng tôi đã thảo luận về hai phương pháp với nhiều ví dụ để hướng dẫn cách có thể chuyển đổi tệp XLSX với một hoặc nhiều trang tính thành tệp CSV. Chúng tôi đã triển khai một ví dụ để chuyển đổi đồng thời nhiều tệp XLSX thành tệp CSV. Việc chuyển đổi dữ liệu từ Excel sang CSV có thể đơn giản hoặc khó khăn. Nếu bạn chỉ có một tệp với số lượng trang tính nhỏ, thì thật đơn giản. Nhưng nếu không, nó có thể khó khăn.