Python 导出到 Excel
-
使用 Python 中的
DataFrame.to_excel()
函数将数据导出到 Excel -
使用 Python 中的
xlwt
库将数据导出到 Excel -
使用 Python 中的
openpyxl
库将数据导出到 Excel -
使用 Python 中的
XlsWriter
库将数据导出到 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()
函数将 list1
和 list2
中的数据作为列导出到 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
文件:
在 Python 中,我们使用 xlwt
库将数据写入 sample_data2.xls
文件。
我们首先创建了一个 Workbook
类的对象。使用这个对象,我们用 Workbook
类的 add_sheet()
方法创建了一个工作表。
然后,我们使用 write()
函数将数据写入新创建的工作表中。最后,当所有数据都已正确写入其指定索引时,我们使用 Workbook
类的 save()
函数将工作簿保存到 Excel 文件中。
这是一种非常简单的方法,但唯一的缺点是我们必须记住文件中每个单元格的行和列索引。我们不能只使用 A1
和 A2
索引。这种方法的另一个缺点是我们只能编写带有 .xls
扩展名的文件。
使用 Python 中的 openpyxl
库将数据导出到 Excel
另一种可用于将数据写入 Excel 兼容文件的方法是 Python 中的 openpyxl
库。
这种方法解决了以前方法的所有缺点。我们不需要记住每个数据点的确切行和列索引。只需在 write()
函数中指定我们的单元格,如 A1
或 A2
。
这种方法的另一个很酷的优点是它可以用来编写具有新的 .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
文件:
在上面的代码中,我们使用 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
文件:
在上述代码中,我们使用 Python 的 xlswriter
库将数据写入 sample_data4.xlsx
Excel 文件。
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