Python使用pandas和xlsxwriter读写xlsx文件的方法示例

  • Post category:Python

当需要读写xlsx文件时,Python提供了许多选择。在本文中,将演示如何使用pandas和xlsxwriter读写xlsx文件。

安装库

在开始之前,需要安装以下库:

  • pandas 用于处理数据和读写xlsx文件。
  • xlsxwriter 用于写入xlsx文件。

可以使用以下命令安装:

pip install pandas xlsxwriter

读取xlsx文件

使用以下代码读取xlsx文件:

import pandas as pd

df = pd.read_excel("file.xlsx")  # 更改为您的文件名

更改file.xlsx为文件名和路径。df是读取的Excel文件中包含的数据作为DataFrame对象。

如果你要读取Excel文件中的特定工作表,使用以下代码:

df = pd.read_excel("file.xlsx", sheet_name="Sheet1") # 更改为您的文件和工作表名

更改file.xlsx为文件名和路径。Sheet1是要读取的工作表名称。

写入xlsx文件

使用以下代码将数据写入xlsx文件:

import pandas as pd

data = {'Name': ['Tom', 'Jerry', 'Ben', 'May'], 'Age': [25, 30, 28, 35], 'Country': ['China', 'US', 'UK', 'Japan']}
df = pd.DataFrame(data)
writer = pd.ExcelWriter("output.xlsx")  # 更改为您的文件名

df.to_excel(writer, sheet_name='Data', index=False)

writer.save()
writer.close()

data是生成DataFrame对象的字典。df是数据结构DataFrame。writer是Excel写入器。output.xlsx是输出文件名和路径。Data是写入的工作表名称。

df.to_excel(writer, sheet_name='Data', index=False)这一行将数据写入输出文件。

writer.save()将更改保存到输出文件中。

writer.close()将文件输出关闭。

使用xlsxwriter进行格式化

默认情况下,使用xlsxwriter写出的Excel文档相当灵活,但在许多情况下,可能需要对工作表进行格式化。下面是一个示例,在这个示例中将使用xlsxwriter格式化Excel工作表。

import pandas as pd
import xlsxwriter

data = {'Name': ['Tom', 'Jerry', 'Ben', 'May'], 'Age': [25, 30, 28, 35], 'Country': ['China', 'US', 'UK', 'Japan']}
df = pd.DataFrame(data)
writer = pd.ExcelWriter("output.xlsx", engine='xlsxwriter')  # 更改为您的文件名

df.to_excel(writer, sheet_name='Data', index=False)

workbook  = writer.book
worksheet = writer.sheets['Data']

# 格式化列
cell_format = workbook.add_format({'align': 'center'})
worksheet.set_column('A:C', 20, cell_format)

# 冻结窗格
worksheet.freeze_panes(1, 0)

# 添加筛选
worksheet.autofilter(0, 0, len(df.index), len(df.columns) - 1)

writer.save()
writer.close()

这个示例读取先前的数据。然后,它在写入文件之前设置格式。最后一个块针对格式的设置。

workbook.add_format({'align': 'center'}) 创建一个格式对象,使单元格内容在中心对齐。

worksheet.set_column('A:C', 20, cell_format) 设置列的宽度为20,这个示例中,它使用格式对象将单元格内容设置为中心对齐。

worksheet.freeze_panes(1, 0) 冻结窗格,使列的标题可见。

worksheet.autofilter(0, 0, len(df.index), len(df.columns) - 1) 添加筛选器,使数据在工作表中更容易筛选。

总的来说,这个示例使用xlsxwriter对一个Excel工作表进行格式化,使数据更好地呈现出来。

以上是使用pandas和xlsxwriter读写xlsx文件的方法示例的完整实例教程。