Python 导出到 Excel

Muhammad Maisam Abbas 2023年1月30日
  1. 使用 Python 中的 DataFrame.to_excel() 函数将数据导出到 Excel
  2. 使用 Python 中的 xlwt 库将数据导出到 Excel
  3. 使用 Python 中的 openpyxl 库将数据导出到 Excel
  4. 使用 Python 中的 XlsWriter 库将数据导出到 Excel
Python 导出到 Excel

本教程将演示在 Python 中将表格数据写入 excel 文件的不同方法。

使用 Python 中的 DataFrame.to_excel() 函数将数据导出到 Excel

如果我们想在 Python 中将表格数据写入 Excel 工作表,我们可以使用 Pandas DataFrame 中的 to_excel() 函数

pandas DataFrame 是一种存储表格数据的数据结构。to_excel() 函数有两个输入参数:文件名和工作表名。我们必须将数据存储在 pandas DataFrame 中,然后调用 to_excel() 函数将该数据导出到 Excel 文件中。

我们需要已经在我们的系统上安装了 pandas 库才能使这种方法起作用。下面给出了安装 pandas 库的命令。

pip install pandas

下面给出了这种方法的工作演示。

import pandas as pd

list1 = [10, 20, 30, 40]
list2 = [40, 30, 20, 10]
col1 = "X"
col2 = "Y"
data = pd.DataFrame({col1: list1, col2: list2})
data.to_excel("sample_data.xlsx", sheet_name="sheet1", index=False)

sample_data.xlsx 文件:

样本数据

在上面的代码中,我们使用 Python 的 to_excel() 函数将 list1list2 中的数据作为列导出到 sample_data.xlsx Excel 文件中。

我们首先将两个列表中的数据存储到 pandas DataFrame 中。之后,我们调用 to_excel() 函数并传递我们的输出文件和工作表的名称。

请记住,此方法仅在两个列表的长度相等时才有效。如果长度不相等,我们可以通过用 None 值填充较短的列表来补偿缺失值。

这是在 Python 中将数据写入与 Excel 兼容的文件的最简单方法。

使用 Python 中的 xlwt 库将数据导出到 Excel

xlwt 用于将数据写入与 Python 中从 95 到 2003 的 Excel 版本兼容的旧电子表格中。这是在 Python 中将数据写入 Excel 文件的标准方式。

它也相当简单,与以前的方法相比,我们可以更好地控制 Excel 文件。我们可以创建一个 xlwt.Workbook 类的对象并调用 .add_sheet() 函数在我们的工作簿中创建一个新工作表。

然后我们可以使用 write() 方法来写入我们的数据。这个 write() 函数将行索引(从 0 开始)、列索引(也从 0 开始)和要写入的数据作为输入参数。

我们需要在我们的机器上安装 xlwt 库才能使此方法起作用。下面给出了安装库的命令。

pip install xlwt

下面给出了这种方法的一个简短的工作示例。

import xlwt
from xlwt import Workbook

wb = Workbook()

sheet1 = wb.add_sheet("Sheet 1")
# sheet1.write(row,col, data, style)
sheet1.write(1, 0, "1st Data")
sheet1.write(2, 0, "2nd Data")
sheet1.write(3, 0, "3rd Data")
sheet1.write(4, 0, "4th Data")

wb.save("sample_data2.xls")

sample_data2.xls 文件:

样本数据 2

在 Python 中,我们使用 xlwt 库将数据写入 sample_data2.xls 文件。

我们首先创建了一个 Workbook 类的对象。使用这个对象,我们用 Workbook 类的 add_sheet() 方法创建了一个工作表。

然后,我们使用 write() 函数将数据写入新创建的工作表中。最后,当所有数据都已正确写入其指定索引时,我们使用 Workbook 类的 save() 函数将工作簿保存到 Excel 文件中。

这是一种非常简单的方法,但唯一的缺点是我们必须记住文件中每个单元格的行和列索引。我们不能只使用 A1A2 索引。这种方法的另一个缺点是我们只能编写带有 .xls 扩展名的文件。

使用 Python 中的 openpyxl 库将数据导出到 Excel

另一种可用于将数据写入 Excel 兼容文件的方法是 Python 中的 openpyxl

这种方法解决了以前方法的所有缺点。我们不需要记住每个数据点的确切行和列索引。只需在 write() 函数中指定我们的单元格,如 A1A2

这种方法的另一个很酷的优点是它可以用来编写具有新的 .xlsx 文件扩展名的文件,这在以前的方法中不是这种情况。此方法与前一种方法一样工作。

这里唯一的区别是我们必须使用 openpyxl 库中的 cell(row,col) 方法初始化每个单元格和一个工作表。

openpyxl 也是一个外部库。我们需要安装这个库才能让这个方法正常工作。在我们的机器上安装 openpyxl 库的命令如下。

pip install openpyxl

下面给出了这种方法的简单工作演示。

import openpyxl

my_wb = openpyxl.Workbook()
my_sheet = my_wb.active
c1 = my_sheet.cell(row=1, column=1)
c1.value = "Maisam"
c2 = my_sheet.cell(row=1, column=2)
c2.value = "Abbas"
c3 = my_sheet["A2"]
c3.value = "Excel"
# for B2: column = 2 & row = 2.
c4 = my_sheet["B2"]
c4.value = "file"
my_wb.save("sample_data3.xlsx")

sample_data3.xlsx 文件:

样本数据 3

在上面的代码中,我们使用 Python 中的 openpyxl 库将数据写入 sample_data3.xlsx Excel 文件。

我们首先创建了一个 Workbook 类的对象。我们使用这个对象创建了一个带有 Workbook.active 的工作表。我们还使用 my_sheet.cell(row = 1, column = 1) 创建了一个单元格对象。

除了写出确切的行号和列号,我们还可以指定单元格名称,如 A1。然后我们可以用 c1.value = "Maisam" 分配我们新创建的单元格值。

最后,当所有数据都已正确写入其指定索引时,我们使用 Workbook 类的 save() 函数将工作簿保存到 Excel 文件中。

使用 Python 中的 XlsWriter 库将数据导出到 Excel

将数据写入与 Excel 兼容的文件的另一种简单易用的方法是 Python 中的 XlsWriter

这个库让我们对输出文件的控制比上面提到的任何以前的方法都多。该库还支持最新的 Excel 兼容文件扩展名,如 xlsx

要将数据写入 Excel 文件,我们首先必须通过提供构造函数的文件名作为输入参数来创建 Workbook 类的对象。然后我们必须在 Workbook 类中使用 add_worksheet() 函数创建一个工作表。

添加工作表后,我们可以使用 sheet.write(cell, data) 函数写入数据。这个 sheet.write() 函数有两个参数:单元格的名称和要写入的数据。

将所有数据写入工作表后,我们需要使用 Workbook 类中的 close() 方法关闭我们的工作簿。

XlsWriter 是一个外部库,没有预装 Python。我们首先必须在我们的机器上安装 XlsWriter 库才能使此方法起作用。下面给出了安装 XlsWriter 库的命令。

pip install XlsxWriter

这种方法的工作演示如下所示。

import xlsxwriter

workbook = xlsxwriter.Workbook("sample_data4.xlsx")
sheet = workbook.add_worksheet()

sheet.write("A1", "Maisam")
sheet.write("A2", "Abbas")

workbook.close()

sample_data4.xlsx 文件:

样本数据 4

在上述代码中,我们使用 Python 的 xlswriter 库将数据写入 sample_data4.xlsx Excel 文件。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相关文章 - Python Excel