Hướng dẫn convert csv to excel using openpyxl - chuyển đổi csv sang excel bằng openpyxl

Ngoài đề xuất của John, tôi đã sửa đổi một chút tập lệnh của mình bằng cách sử dụng chức năng để xóa dấu nháy đơn của chuỗi cho tất cả dữ liệu thô. Bằng cách này, tôi quản lý để kiểm tra tất cả dữ liệu thô (chuỗi và số), cũng được đặt trong ô tương ứng. Cuối cùng, tôi gán dữ liệu số cho loại nổi bắt đầu từ hàng 20 trở đi. Điều này là do tất cả dữ liệu số tồn tại từ hàng thứ 20 trở đi, trong khi tất cả dữ liệu trên chỉ là văn bản.

cell_value = cell.replace ('"', '')

Dưới đây là kịch bản của tôi:

import csv
from openpyxl import Workbook

wb = Workbook()
ws = wb.active

with open(filepath2_csv) as f:
reader = csv.reader(f)
for row_index, row in enumerate(reader):
    for column_index, cell in enumerate(row):
        column_letter = column_index + 1
        cell_value = cell.replace('"', '')
        ws.cell(row = row_index + 1, column = column_letter).value = cell_value

for row in ws.iter_rows(min_row=20, min_col=1, max_col=5, 
max_row=ws.max_row):
for cell in row:
    if cell.value is None:
        break
    else:
        cell.value = float(cell.value)

wb.save(filename = filepath2_xlsx)   

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 như một dấu phân cách để 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ở các tệp CSV mà không có vấn đề gì. Bạn có thể tự mở một cái với Excel và sau đó tự lưu nó theo đị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 thành Excel
  • Chuyển đổi bảng tính Excel thành 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 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 thành Excel

Chuyển đổi bảng tính Excel thành CSV

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

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 khác.books.txt. You can also download the CSV file from this book's GitHub code repository.

Bắt đầu

# 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 csv của Python ngoài OpenPyXL. Bạn tạo một hàm, csv_to_excel(), sau đó chấp nhận hai đối số:

  • csv_file - Đường dẫn đến tệp CSV đầu vào
  • excel_file - Đường dẫn đến tệp Excel mà bạn 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

python3 -m pip install openpyxl
0 và sau đó lặp qua một hàng cùng một lúc. Đối với mỗi lần lặp, bạn nối hàng vào
python3 -m pip install openpyxl
1. Một
python3 -m pip install openpyxl
2 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

python3 -m pip install openpyxl
3 của bạn, bạn lặp lại từng hàng trong
python3 -m pip install openpyxl
1 và
python3 -m pip install openpyxl
5 chúng vào bảng 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ó bảng tính Excel trông như thế này:

Hướng dẫn convert csv to excel using openpyxl - chuyển đổi csv sang excel bằng openpyxl

Bảng tính CSV đến Excel

Bây giờ bạn có thể chuyển đổi một tệp CSV thành bảng tính Excel trong chưa đầy hai mươi lăm 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 thành 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 để tiêu thụ dữ liệu. Một nhu cầu tiềm năng 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 một người không có chương trình bảng tính để mở nó. 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

python3 -m pip install openpyxl
6 và thêm 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 csv

python3 -m pip install openpyxl
8 để 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 qua bảng tính bằng phương thức
python3 -m pip install openpyxl
9.
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
0 bạn nhận được trong mỗi lần lặp của
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
1 là danh sách các chuỗi. Bạn nối danh sách các chuỗi vào
python3 -m pip install openpyxl
1.

Bước tiếp theo là tạ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,9781788399081
3. Sau đó, bạn lặp lại từng danh sách các chuỗi trong
python3 -m pip install openpyxl
1 và gọi
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
5 để 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!

Gói lên

Chuyển đổi tệp CSV thành bảng tính Excel rất dễ thực hiện với Python. Đây 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à chuyển đổi nó thành một cái gì đó mà bạn có thể trình bày cho công ty của mình.

Bạn có thể áp dụng kiểu dáng di động cho dữ liệu khi bạn viết nó vào bảng tính của bạn. Bằng cách áp dụng kiểu dáng di động, bạn có thể làm cho dữ liệu của mình nổi bật với các phông chữ hoặc màu nền khác nhau.

Hãy thử mã này trên các tệp Excel hoặc CSV của riêng bạn và xem những gì bạn có thể làm.

Đọc liên quan

Bạn có muốn tìm hiểu thêm về việc xử lý bảng tính Excel với Python không? Sau đó kiểm tra các hướng dẫn sau:

  • OpenPyXL - Làm việc với Microsoft Excel bằng Python

  • Tạo kiểu tế bào Excel với OpenPyXL và Python
  • Đọc bảng tính Excel với Python và XLRD

Làm thế nào để bạn chuyển đổi tệp CSV thành Excel bằng Python?

Thuật toán (các bước) Tải CSV dưới dạng khung dữ liệu PANDAS. Chuyển đổi tệp CSV thành tệp excel bằng cách chuyển chỉ mục đúng như một đối số cho hàm excel () và hiển thị các giá trị chỉ mục. index = true có nghĩa là các giá trị chỉ mục được hiển thị ở đây. Sử dụng hàm Save () (lưu tệp) để lưu tệp excel kết quả/đầu ra.load the CSV as a pandas data frame. Convert the CSV file to an excel file by passing the index as True as an argument to the excel() function and displaying index values. index=True means that index values are shown here. Use the save() function (saves the file) to save the result/output excel file.

Làm cách nào để chuyển đổi tệp CSV thành Excel?

Bạn có thể nhập dữ liệu từ một tệp văn bản vào một bảng tính hiện có.Trên tab Dữ liệu, trong nhóm dữ liệu GET & Biến đổi, nhấp vào từ hộp thoại Text/CSV. Trong hộp thoại Nhập dữ liệu, định vị và nhấp đúp vào tệp văn bản mà bạn muốn nhập và nhấp vào Nhập.On the Data tab, in the Get & Transform Data group, click From Text/CSV. In the Import Data dialog box, locate and double-click the text file that you want to import, and click Import.

OpenPyXL có thể hoạt động với các tệp CSV không?

Chuyển đổi tệp CSV để vượt trội mã của bạn sử dụng mô -đun CSV của Python ngoài OpenPyXL.Bạn tạo một hàm, csv_to_excel (), sau đó chấp nhận hai đối số: csv_file - đường dẫn đến tệp CSV đầu vào.Your code uses Python's csv module in addition to OpenPyXL. You create a function, csv_to_excel() , then accepts two arguments: csv_file - The path to the input CSV file.

Làm cách nào để lưu tệp CSV dưới dạng XLSX trong Python?

Các bước để chuyển đổi CSV thành XLSX thông qua Python..
Tải tệp CSV với một phiên bản của sổ làm việc ..
Gọi Phương thức Workbook.Save ..
Vượt qua đường dẫn đầu ra với tiện ích mở rộng XLSX làm tham số ..
Kiểm tra đường dẫn được chỉ định cho tệp XLSX kết quả ..