Các nhà phát triển thường cần xuất một Pandas DataFrame ra Excel. Excel là một công cụ tuyệt vời để chia sẻ và xem xét các báo cáo. Python với Pandas làm cho điều này trở nên đơn giản, nhưng việc sử dụng Aspose.Cells for Python mang lại cho bạn nhiều sự kiểm soát hơn. Bạn có thể chuyển đổi một DataFrame sang Excel trực tiếp, thông qua CSV, qua JSON, hoặc thậm chí xuất nhiều DataFrame vào một tệp. Trong bài viết này, bạn sẽ học cách chuyển đổi một Pandas DataFrame sang Excel với bốn phương pháp từng bước.

Tại sao sử dụng Aspose.Cells cho Pandas để chuyển đổi thành Excel

Pandas có một hàm tích hợp sẵn toexcel(). Nó hoạt động cho các xuất cơ bản nhưng bị giới hạn về tính năng. Aspose.Cells for Python là một trong những thư viện Excel Python tốt nhất cho các nhà phát triển cung cấp một động cơ Excel hoàn chỉnh. Nó cho phép bạn lưu DataFrames vào Excel với độ tin cậy cao. Bạn cũng có thể làm việc với biểu đồ, công thức, định dạng và các tệp lớn.

Bài viết này sẽ chỉ cho bạn cách xuất một DataFrame của Pandas ra Excel bằng cách sử dụng Aspose.Cells theo nhiều cách khác nhau.

Trước khi bắt đầu, hãy chắc chắn rằng bạn đã cài đặt những thứ sau:

  1. Download Aspose.Cells for Python từ releases hoặc cài đặt bằng pip:
pip install aspose-cells-python
  1. Pandas – cài đặt bằng pip:
pip install pandas

Hai thư viện này sẽ cho phép bạn chuyển đổi Pandas DataFrames thành các tệp Excel.

Phương pháp 1: Chuyển đổi DataFrame thành Excel một cách trực tiếp với Aspose.Cells

Nhiệm vụ phổ biến nhất là xuất một DataFrame của Pandas ra Excel trực tiếp. Với Aspose.Cells, bạn có thể tạo một workbook, nhập các giá trị của DataFrame và lưu nó dưới dạng một file Excel.

Theo dõi các bước dưới đây để chuyển DataFrame sang Excel:

  1. Xây dựng một bộ dữ liệu mẫu.
  2. Khởi tạo một workbook Excel trống.
  3. Truy cập vào trang đầu tiên trong sổ làm việc.
  4. Chèn tên cột DataFrame vào các ô Excel.
  5. Lặp qua từng hàng trong DataFrame và đặt giá trị vào các ô.
  6. Xuất bảng tính cuối cùng ra tệp Excel.

Ví dụ mã sau đây cho thấy cách chuyển đổi Pandas thành Excel trực tiếp:

import aspose.cells as ac
import pandas as pd

# Bước 1: Tạo một DataFrame mẫu
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 32, 18, 47],
    'city': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)

# Bước 2: Tạo một sổ làm việc mới
wb = ac.Workbook()

# Bước 3: Lấy trang tính đầu tiên
worksheet = wb.worksheets[0]

# Bước 4: Lấy tập hợp các ô
cells = worksheet.cells

# Bước 5: Ghi tên cột DataFrame vào Excel
rowindex = 0
colindex = 0
for column in df:
    cell = cells.get(rowindex, colindex)
    cell.put_value(df[column].name)
    colindex += 1

# Bước 6: Ghi các hàng DataFrame vào Excel
for index, row in df.iterrows():
    rowindex += 1
    colindex = 0
    cell = cells.get(rowindex, colindex)
    cell.put_value(row["name"])
    colindex += 1
    cell = cells.get(rowindex, colindex)
    cell.put_value(row["age"])
    colindex += 1
    cell = cells.get(rowindex, colindex)
    cell.put_value(row["city"])
    colindex += 1

# Bước 7: Lưu DataFrame dưới dạng Excel
wb.save("direct_df_to_excel.xlsx")
Chuyển đổi DataFrame sang Excel trực tiếp với Aspose.Cells

Chuyển DataFrame sang Excel trực tiếp với Aspose.Cells.

Mã code này lưu DataFrame Pandas vào Excel tại vị trí đã cho. Bạn có thể thay đổi đường dẫn để phù hợp với hệ thống của bạn.

Phương pháp này cho phép bạn kiểm soát hoàn toàn cách dữ liệu Pandas DataFrame được ghi vào Excel. Đây là cách trực tiếp nhất để chuyển đổi một DF thành Excel bằng cách sử dụng Aspose.Cells.

Phương pháp 2: Chuyển DataFrame thành Excel qua CSV

Một cách đơn giản khác là lưu DataFrame Pandas của bạn dưới dạng CSV trước, sau đó chuyển đổi tệp CSV đó thành Excel bằng cách sử dụng Aspose.Cells. Điều này hữu ích khi quy trình của bạn đã tạo ra đầu ra CSV và bạn vẫn cần một tệp Excel sạch.

Vui lòng làm theo các bước sau để chuyển đổi DataFrame thành Excel qua CSV:

  1. Build sample data.
  2. Lưu DataFrame dưới dạng CSV bằng cách sử dụng phương thức tocsv() từ Pandas.
  3. Mở tệp CSV dưới dạng sổ làm việc.
  4. Xuất sổ làm việc ra tệp .xlsx.

Ví dụ mã sau đây cho thấy cách chuyển đổi Pandas sang Excel qua CSV:

import aspose.cells as ac
import pandas as pd

# Bước 1: Tạo một DataFrame mẫu
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 32, 18, 47],
    'city': ['New York', 'Paris', 'London', 'Berlin']
}
df = pd.DataFrame(data)

# Bước 2: Lưu DataFrame dưới dạng CSV
df.to_csv("temp.csv", index=False)

# Bước 3: Tải tệp CSV bằng Aspose.Cells
wb = ac.Workbook("temp.csv")

# Bước 4: Lưu dưới dạng tệp Excel
wb.save("df_via_csv.xlsx")

Cách tiếp cận này đầu tiên tạo một tệp CSV, sau đó chuyển đổi nó thành Excel. Nó đảm bảo rằng việc chuyển đổi từ Pandas sang Excel của bạn hoạt động ngay cả khi quy trình của bạn đã dựa vào các tệp CSV.

Sử dụng phương pháp này khi bạn muốn chuyển từ CSV sang Excel nhanh chóng trong khi vẫn giữ được tính linh hoạt của Pandas và Aspose.Cells.

Phương pháp 3: Chuyển DataFrame sang Excel thông qua JSON

Nhiều API sử dụng JSON. Bạn cũng có thể truyền JSON vào Aspose.Cells để xây dựng một bảng tính Excel. Phương pháp này chuyển đổi một Pandas DataFrame thành JSON trước, sau đó tải JSON đó vào Excel dưới dạng một bảng. Nó giữ cho việc xuất pandas sang Excel của bạn sạch sẽ và đáng tin cậy. Nó cũng giúp khi bạn muốn kiểm soát chặt chẽ các tiêu đề và kiểu dữ liệu.

Vui lòng làm theo các bước dưới đây:

  1. Xây dựng dữ liệu mẫu cho buổi biểu diễn.
  2. Gọi df.tojson(orient='records') để chuyển đổi.
  3. Khởi tạo đối tượng lớp Workbook() và lấy bảng tính đầu tiên.
  4. Bật arrayastable để nhập bảng đúng cách.
  5. Gọi phương thức JsonUtility.importdata() để nhập JSON vào các ô của bảng tính.
  6. Viết tệp cuối vào .xlsx.

Ví dụ mã dưới đây cho thấy cách chuyển đổi một Pandas DF sang Excel thông qua JSON:

import pandas as pd
from aspose.cells.utility import JsonUtility, JsonLayoutOptions
from aspose.cells import Workbook, Worksheet, Cells

# Tạo một DataFrame pandas mẫu
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'San Francisco', 'Los Angeles']}
        	
df = pd.DataFrame(data)

# Chuyển đổi DataFrame pandas sang JSON
json_string = df.to_json(orient='records')

workbook = Workbook()

# Lấy bảng tính đầu tiên
worksheet = workbook.worksheets[0]

# Lấy các ô
cells = worksheet.cells

options = JsonLayoutOptions()
unit = JsonUtility()

# Quy trình dưới dạng bảng
options.array_as_table = True

# Nhập dữ liệu JSON vào bảng tính bắt đầu từ hàng 0, cột 0
unit.import_data(json_string, cells, 0, 0, options)

# Lưu thành tệp Excel
workbook.save("df_via_json.xlsx")

orient='records' tạo ra một danh sách các đối tượng. Mỗi đối tượng ánh xạ các khóa đến tên cột. arrayastable=True yêu cầu Aspose.Cells coi mảng như một bảng đúng với tiêu đề. Trình nhập sẽ ghi các giá trị vào ô bắt đầu từ A1. Điều này mang lại cho bạn một bố cục dễ đoán trong Excel.

Phương pháp 4: Xuất nhiều DataFrame ra các trang Excel

Bạn có thể viết hơn một Pandas DataFrame vào một tệp Excel duy nhất. Mỗi DataFrame sẽ được lưu vào một trang riêng. Phương pháp này mang lại cho bạn một xuất khẩu pandas sạch đến Excel cho các báo cáo và bảng nhóm.

Vui lòng làm theo bước dưới đây:

  1. Tạo một hàm để ghi nhiều DataFrame vào nhiều sheet.
  2. Khởi tạo một workbook mới.
  3. Thêm một trang cho mỗi DataFrame và đặt tên cho nó từ sheetnames.
  4. Đặt tên cột trong hàng đầu tiên.
  5. Duyệt qua các bộ dữ liệu DataFrame và ghi giá trị ô.
  6. Xuất dưới dạng XLSX với phương thức workbook.save().

Ví dụ mã dưới đây cho thấy cách xuất nhiều DataFrame Pandas ra các trang Excel:

import pandas as pd
from aspose.cells import Workbook, WorksheetCollection, SaveFormat

def write_multiple_dataframes_to_excel(dataframes, sheet_names, output_path):
    """
    Write multiple DataFrames to multiple sheets in an Excel file
    :param dataframes: List of pandas.DataFrame
    :param sheet_names: List of sheet names (same length as dataframes)
    :param output_path: Output Excel file path
    """
    # Tạo một workbook trống
    workbook = Workbook()

    # Tùy chọn: xóa trang trắng mặc định nếu bạn không cần nó.
    # workbook.worksheets.removeat(0)

   for df, name in zip(dataframes, sheet_names):
        # Thêm một bảng tính mới
        worksheet = workbook.worksheets.add(name)
        cells = worksheet.cells

        # Viết tiêu đề cột
       for col_idx, col_name in enumerate(df.columns):
            cells.get(0, col_idx).put_value(str(col_name))

        # Write row data
       for row_idx, row in enumerate(df.itertuples(index=False), start=1):
           for col_idx, value in enumerate(row):
                cells.get(row_idx, col_idx).put_value(value)

    # Lưu dưới dạng tệp Excel
    workbook.save(output_path, SaveFormat.XLSX)

# Tạo hai DataFrame
df1 = pd.DataFrame({
    "Name": ["Alice", "Bob"],
    "Age": [25, 30]
})

df2 = pd.DataFrame({
    "Product": ["Book", "Pen"],
    "Price": [10.5, 1.99]
})

# Viết vào Excel
write_multiple_dataframes_to_excel(
    dataframes=[df1, df2],
    sheet_names=["People", "Products"],
    output_path="MultiDataFrame.xlsx"
)
Xuất nhiều DataFrame Pandas vào các trang Excel với Aspose.Cells

Xuất nhiều DataFrame Pandas ra các trang Excel với Aspose.Cells.

Hàm kết đôi mỗi DataFrame với một tên bảng. Nó ghi tiêu đề ở hàng 0 và dữ liệu từ hàng 1. Aspose.Cells ghi giá trị vào ô với kiểu dữ liệu mạnh. Tệp XLSX cuối cùng giữ cho các bảng của bạn rõ ràng và sẵn sàng để chia sẻ.

Lấy Giấy phép Miễn phí

Đánh giá Aspose.Cells for Python qua .NET mà không giới hạn. Yêu cầu giấy phép tạm thời miễn phí từ trang license page.Áp dụng nó trong mã của bạn để gỡ bỏ các hạn chế đánh giá. Kiểm tra mọi tính năng, bao gồm DF sang Excel, biểu đồ, công thức và tệp lớn.

PD to Excel: Tài nguyên miễn phí

Vui lòng sử dụng những tài nguyên này để nâng cao kiến thức của bạn và cải thiện sự hiểu biết của bạn.

Kết luận

Bạn đã học được nhiều cách để xuất một Pandas DataFrame sang Excel với Aspose.Cells for Python. Bạn có thể lưu một DataFrame trực tiếp, sử dụng CSV, sử dụng JSON, hoặc ghi nhiều DataFrames vào một tệp. Mỗi phương pháp đều đơn giản, nhanh chóng và đáng tin cậy. Nếu bạn đang tìm kiếm các tính năng Excel nâng cao hơn ngoài Pandas, Aspose.Cells là sự lựa chọn đúng. Hãy thử nó trong dự án tiếp theo của bạn và chuyển từ Pandas sang Excel với đầy đủ quyền kiểm soát.

Nếu bạn có bất kỳ câu hỏi nào, hãy truy cập vào diễn đàn hỗ trợ miễn phí.Chúng tôi sẽ rất vui được hỗ trợ bạn.

Xem Thêm