Có nhiều loại tệp phổ biến mà bạn sẽ cần phải làm việc với tư cách là nhà phát triển phần mềm. Một định dạng như vậy là tệp CSV. CSV là viết tắt của "Các giá trị được phân tách bằng dấu phẩy" và là định dạng tệp văn bản sử dụng dấu phẩy làm dấu phân cách để phân tách các giá trị với nhau. Mỗi hàng là bản ghi riêng của nó và mỗi giá trị là trường riêng của nó. Hầu hết các tệp CSV đều có các bản ghi có cùng độ dài
Microsoft Excel mở tệp CSV mà không gặp sự cố. Bạn có thể tự mở bằng Excel và sau đó tự lưu nó ở định dạng Excel. Mục đích của bài viết này là dạy cho bạn các khái niệm sau
- Chuyển đổi tệp CSV sang Excel
- Chuyển đổi bảng tính Excel sang CSV
Bạn sẽ sử dụng Python và OpenPyXL để thực hiện chuyển đổi từ loại tệp này sang loại tệp khác
Bắt đầu
Bạn cần cài đặt OpenPyXL để có thể sử dụng các ví dụ trong bài viết này. Bạn có thể sử dụng pip để cài đặt OpenPyXL
python3 -m pip install openpyxl
Bây giờ bạn đã có OpenPyXL, bạn đã sẵn sàng tìm hiểu cách chuyển đổi tệp CSV thành bảng tính Excel
Chuyển đổi tệp CSV sang Excel
Bạn sẽ sớm thấy rằng việc chuyển đổi tệp CSV sang bảng tính Excel không cần nhiều mã. Tuy nhiên, bạn cần phải có tệp CSV để bắt đầu. Với ý nghĩ đó, hãy mở trình soạn thảo văn bản yêu thích của bạn [Notepad, Sublime Text hoặc thứ gì đó khác] và thêm phần sau
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,9781788399081
Lưu tệp này dưới dạng sách. txt. Bạn cũng có thể tải xuống tệp CSV từ kho lưu trữ mã GitHub của cuốn sách này
Bây giờ bạn đã có tệp CSV, bạn cũng cần tạo một tệp Python mới. Mở IDE Python của bạn và tạo một tệp mới có tên
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990818. Sau đó nhập mã sau
# csv_to_excel.py import csv import openpyxl def csv_to_excel[csv_file, excel_file]: csv_data = [] with open[csv_file] as file_obj: reader = csv.reader[file_obj] for row in reader: csv_data.append[row] workbook = openpyxl.Workbook[] sheet = workbook.active for row in csv_data: sheet.append[row] workbook.save[excel_file] if __name__ == "__main__": csv_to_excel["books.csv", "books.xlsx"]
Mã của bạn sử dụng mô-đun
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990819 của Python ngoài OpenPyXL. Bạn tạo một hàm,
# csv_to_excel.py import csv import openpyxl def csv_to_excel[csv_file, excel_file]: csv_data = [] with open[csv_file] as file_obj: reader = csv.reader[file_obj] for row in reader: csv_data.append[row] workbook = openpyxl.Workbook[] sheet = workbook.active for row in csv_data: sheet.append[row] workbook.save[excel_file] if __name__ == "__main__": csv_to_excel["books.csv", "books.xlsx"]0, sau đó chấp nhận hai đối số
# csv_to_excel.py import csv import openpyxl def csv_to_excel[csv_file, excel_file]: csv_data = [] with open[csv_file] as file_obj: reader = csv.reader[file_obj] for row in reader: csv_data.append[row] workbook = openpyxl.Workbook[] sheet = workbook.active for row in csv_data: sheet.append[row] workbook.save[excel_file] if __name__ == "__main__": csv_to_excel["books.csv", "books.xlsx"]
1 - Đường dẫn đến tệp CSV đầu vào# csv_to_excel.py import csv import openpyxl def csv_to_excel[csv_file, excel_file]: csv_data = [] with open[csv_file] as file_obj: reader = csv.reader[file_obj] for row in reader: csv_data.append[row] workbook = openpyxl.Workbook[] sheet = workbook.active for row in csv_data: sheet.append[row] workbook.save[excel_file] if __name__ == "__main__": csv_to_excel["books.csv", "books.xlsx"]
2 - Đường dẫn đến file Excel muốn tạo
Bạn muốn trích xuất từng hàng dữ liệu từ CSV. Để trích xuất dữ liệu, bạn tạo một đối tượng
# csv_to_excel.py import csv import openpyxl def csv_to_excel[csv_file, excel_file]: csv_data = [] with open[csv_file] as file_obj: reader = csv.reader[file_obj] for row in reader: csv_data.append[row] workbook = openpyxl.Workbook[] sheet = workbook.active for row in csv_data: sheet.append[row] workbook.save[excel_file] if __name__ == "__main__": csv_to_excel["books.csv", "books.xlsx"]3 rồi lặp lại trên một hàng tại một thời điểm. Đối với mỗi lần lặp lại, bạn nối thêm hàng vào
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990810. Một
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990811 là một danh sách các chuỗi
Bước tiếp theo của quy trình là tạo bảng tính Excel. Để thêm dữ liệu vào
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990812 của bạn, bạn lặp qua từng hàng trong
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990810 và
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990814 chúng vào Trang tính của bạn. Cuối cùng, bạn lưu bảng tính Excel
Khi bạn chạy mã này, bạn sẽ có một bảng tính Excel trông như thế này
Bảng tính CSV sang Excel
Giờ đây, bạn có thể chuyển đổi tệp CSV sang bảng tính Excel trong vòng chưa đến 25 dòng mã
Bây giờ bạn đã sẵn sàng tìm hiểu cách chuyển đổi bảng tính Excel thành tệp CSV
Chuyển đổi Bảng tính Excel sang CSV
Chuyển đổi bảng tính Excel thành tệp CSV có thể hữu ích nếu bạn cần các quy trình khác để sử dụng dữ liệu. Một nhu cầu tiềm ẩn khác đối với tệp CSV là khi bạn cần chia sẻ bảng tính Excel của mình với người không có chương trình bảng tính để mở tệp đó. Trong khi hiếm, điều này có thể xảy ra
Bạn có thể chuyển đổi bảng tính Excel thành tệp CSV bằng Python. Tạo một tệp mới có tên
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990815 và thêm đoạn mã sau
# excel_to_csv.py import csv import openpyxl from openpyxl import load_workbook def excel_to_csv[excel_file, csv_file]: workbook = load_workbook[filename=excel_file] sheet = workbook.active csv_data = [] # Read data from Excel for value in sheet.iter_rows[values_only=True]: csv_data.append[list[value]] # Write to CSV with open[csv_file, 'w'] as csv_file_obj: writer = csv.writer[csv_file_obj, delimiter=','] for line in csv_data: writer.writerow[line] if __name__ == "__main__": excel_to_csv["books.xlsx", "new_books.csv"]
Một lần nữa, bạn chỉ cần các mô-đun
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990819 và
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990817 để thực hiện chuyển đổi. Lần này, bạn tải bảng tính Excel trước và lặp lại Bảng tính bằng phương pháp
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990818.
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990819 bạn nhận được trong mỗi lần lặp lại của
# csv_to_excel.py import csv import openpyxl def csv_to_excel[csv_file, excel_file]: csv_data = [] with open[csv_file] as file_obj: reader = csv.reader[file_obj] for row in reader: csv_data.append[row] workbook = openpyxl.Workbook[] sheet = workbook.active for row in csv_data: sheet.append[row] workbook.save[excel_file] if __name__ == "__main__": csv_to_excel["books.csv", "books.xlsx"]0 là một danh sách các chuỗi. Bạn nối thêm danh sách các chuỗi vào
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990810
Bước tiếp theo là tạo một
# csv_to_excel.py import csv import openpyxl def csv_to_excel[csv_file, excel_file]: csv_data = [] with open[csv_file] as file_obj: reader = csv.reader[file_obj] for row in reader: csv_data.append[row] workbook = openpyxl.Workbook[] sheet = workbook.active for row in csv_data: sheet.append[row] workbook.save[excel_file] if __name__ == "__main__": csv_to_excel["books.csv", "books.xlsx"]2. Sau đó, bạn lặp lại từng danh sách chuỗi trong
book_title,author,publisher,pub_date,isbn Python 101,Mike Driscoll, Mike Driscoll,2020,123456789 wxPython Recipes,Mike Driscoll,Apress,2018,978-1-4842-3237-8 Python Interviews,Mike Driscoll,Packt Publishing,2018,97817883990810 và gọi
# csv_to_excel.py import csv import openpyxl def csv_to_excel[csv_file, excel_file]: csv_data = [] with open[csv_file] as file_obj: reader = csv.reader[file_obj] for row in reader: csv_data.append[row] workbook = openpyxl.Workbook[] sheet = workbook.active for row in csv_data: sheet.append[row] workbook.save[excel_file] if __name__ == "__main__": csv_to_excel["books.csv", "books.xlsx"]4 để thêm nó vào tệp CSV của bạn
Khi mã của bạn kết thúc, bạn sẽ có một tệp CSV hoàn toàn mới
kết thúc
Chuyển đổi tệp CSV sang bảng tính Excel rất dễ thực hiện với Python. Đó là một công cụ hữu ích mà bạn có thể sử dụng để lấy dữ liệu từ khách hàng hoặc các nguồn dữ liệu khác và biến nó thành thứ mà bạn có thể trình bày cho công ty của mình
Bạn cũng có thể áp dụng kiểu dáng ô cho dữ liệu khi bạn ghi nó vào Trang tính của mình. Bằng cách áp dụng kiểu dáng ô, bạn có thể làm nổi bật dữ liệu của mình bằng các phông chữ hoặc màu nền khác nhau của hàng
Hãy dùng thử mã này trên các tệp Excel hoặc CSV của riêng bạn và xem bạn có thể làm gì
đọc liên quan
Bạn có muốn tìm hiểu thêm về cách xử lý bảng tính Excel bằng Python không?