通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

如何用python写入excel

如何用python写入excel

使用 Python 写入 Excel 的方法有多种,包括使用 pandas、openpyxl、xlsxwriter 等库、其中 pandas 是最常用的方法,因为它不仅功能强大,还与数据处理高度集成、此外,openpyxl 和 xlsxwriter 也非常有用,特别是在需要进行更复杂的 Excel 操作时。 pandas 是一种高性能、易于使用的数据分析和数据处理库。使用 pandas 可以非常方便地将数据写入 Excel 文件。首先,我们需要安装 pandas 和 openpyxl 库:

pip install pandas openpyxl

下面是如何使用 pandas 将数据写入 Excel 文件的一个简单示例:

import pandas as pd

创建一个数据框架

data = {

'Name': ['John', 'Anna', 'Peter', 'Linda'],

'Age': [28, 24, 35, 32],

'City': ['New York', 'Paris', 'Berlin', 'London']

}

df = pd.DataFrame(data)

将数据框架写入 Excel 文件

df.to_excel('output.xlsx', index=False)

以上代码将创建一个名为 output.xlsx 的 Excel 文件,并将数据写入其中。接下来,我们将详细介绍使用 pandas、openpyxl 和 xlsxwriter 库写入 Excel 的方法。

一、使用 pandas 写入 Excel

pandas 是数据科学和数据分析领域中非常流行的库,能够方便地处理和分析数据。使用 pandas,可以将数据框架(DataFrame)直接写入 Excel 文件。

1. 创建数据框架

首先,我们需要创建一个数据框架。这是一个二维的表格数据结构,可以包含任意类型的数据。

import pandas as pd

data = {

'Name': ['John', 'Anna', 'Peter', 'Linda'],

'Age': [28, 24, 35, 32],

'City': ['New York', 'Paris', 'Berlin', 'London']

}

df = pd.DataFrame(data)

2. 写入 Excel 文件

使用 to_excel 方法将数据框架写入 Excel 文件。可以指定文件名和是否包含索引。

df.to_excel('output.xlsx', index=False)

这个方法会自动处理数据的写入,并且可以通过参数进行一些基本的配置。例如,指定工作表名称:

df.to_excel('output.xlsx', sheet_name='People', index=False)

3. 添加样式

pandas 还支持使用 Styler 对数据框架进行样式设置,例如设置字体、颜色等。

styled_df = df.style.set_properties({'text-align': 'center'})

styled_df.to_excel('styled_output.xlsx', index=False)

二、使用 openpyxl 写入 Excel

openpyxl 是一个专门用于读取和写入 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。它提供了对 Excel 文件结构的全面控制。

1. 安装 openpyxl

首先,我们需要安装 openpyxl 库:

pip install openpyxl

2. 创建工作簿和工作表

使用 openpyxl 可以创建一个新的工作簿和工作表,并向其中写入数据。

from openpyxl import Workbook

创建一个工作簿

wb = Workbook()

获取活动的工作表

ws = wb.active

向工作表中写入数据

ws.append(['Name', 'Age', 'City'])

ws.append(['John', 28, 'New York'])

ws.append(['Anna', 24, 'Paris'])

ws.append(['Peter', 35, 'Berlin'])

ws.append(['Linda', 32, 'London'])

保存工作簿

wb.save('openpyxl_output.xlsx')

3. 设置单元格样式

openpyxl 允许我们设置单元格的样式,例如字体、颜色、边框等。

from openpyxl.styles import Font, Color, Alignment

设置单元格样式

for row in ws.iter_rows(min_row=1, max_row=1, min_col=1, max_col=3):

for cell in row:

cell.font = Font(bold=True, color="FF0000")

cell.alignment = Alignment(horizontal="center")

wb.save('styled_openpyxl_output.xlsx')

三、使用 xlsxwriter 写入 Excel

xlsxwriter 是另一个用于创建 Excel 文件的库,特别适用于需要创建复杂的 Excel 文件和图表的情况。

1. 安装 xlsxwriter

首先,我们需要安装 xlsxwriter 库:

pip install xlsxwriter

2. 创建工作簿和工作表

使用 xlsxwriter 可以创建一个新的工作簿和工作表,并向其中写入数据。

import xlsxwriter

创建一个工作簿

workbook = xlsxwriter.Workbook('xlsxwriter_output.xlsx')

创建一个工作表

worksheet = workbook.add_worksheet()

向工作表中写入数据

data = [

['Name', 'Age', 'City'],

['John', 28, 'New York'],

['Anna', 24, 'Paris'],

['Peter', 35, 'Berlin'],

['Linda', 32, 'London']

]

for row_num, row_data in enumerate(data):

for col_num, cell_data in enumerate(row_data):

worksheet.write(row_num, col_num, cell_data)

关闭工作簿

workbook.close()

3. 添加格式和样式

xlsxwriter 提供了丰富的格式和样式选项,可以轻松地对单元格进行格式化。

# 创建一个格式对象

bold = workbook.add_format({'bold': True, 'font_color': 'red', 'align': 'center'})

应用格式到表头

for col_num, value in enumerate(data[0]):

worksheet.write(0, col_num, value, bold)

workbook.close()

四、数据验证和公式

无论是 pandas、openpyxl 还是 xlsxwriter,这些库都支持在 Excel 文件中添加数据验证和公式。

1. 数据验证

数据验证用于确保输入的数据符合特定的规则。以下示例展示了如何使用 openpyxl 添加数据验证:

from openpyxl.worksheet.datavalidation import DataValidation

创建一个数据验证对象

dv = DataValidation(type="list", formula1='"New York,Paris,Berlin,London"', showDropDown=True)

将数据验证应用到某个范围

ws.add_data_validation(dv)

dv.add(ws["C2:C5"])

wb.save('datavalidation_openpyxl_output.xlsx')

2. 添加公式

以下示例展示了如何使用 xlsxwriter 添加公式:

# 向工作表中写入数据

worksheet.write('A1', 10)

worksheet.write('A2', 20)

添加公式

worksheet.write_formula('A3', '=A1+A2')

workbook.close()

五、处理大数据集

当处理大数据集时,性能是一个重要的考虑因素。pandas 是处理大数据集的首选,因为它基于 NumPy,能够高效地处理数百万行数据。

1. 读取和写入大数据集

以下示例展示了如何使用 pandas 读取和写入大数据集:

import pandas as pd

读取大数据集

df = pd.read_csv('large_dataset.csv')

处理数据

df['New_Column'] = df['Existing_Column'] * 2

写入 Excel 文件

df.to_excel('large_output.xlsx', index=False)

2. 分块处理

当数据集过大以至于无法一次性加载到内存时,可以使用分块处理。以下示例展示了如何分块读取和处理大数据集:

import pandas as pd

chunk_size = 100000 # 每个块的行数

创建一个 Excel 写入器

writer = pd.ExcelWriter('chunked_output.xlsx', engine='xlsxwriter')

分块读取和处理数据

for chunk in pd.read_csv('large_dataset.csv', chunksize=chunk_size):

chunk['New_Column'] = chunk['Existing_Column'] * 2

chunk.to_excel(writer, sheet_name='Sheet1', index=False, header=False, startrow=writer.sheets['Sheet1'].max_row)

关闭写入器

writer.save()

六、处理多工作表

在实际应用中,我们可能需要在一个 Excel 文件中处理多个工作表。pandas、openpyxl 和 xlsxwriter 都支持这一功能。

1. 使用 pandas 处理多工作表

以下示例展示了如何使用 pandas 在一个 Excel 文件中写入多个工作表:

import pandas as pd

创建两个数据框架

df1 = pd.DataFrame({

'Name': ['John', 'Anna'],

'Age': [28, 24],

'City': ['New York', 'Paris']

})

df2 = pd.DataFrame({

'Name': ['Peter', 'Linda'],

'Age': [35, 32],

'City': ['Berlin', 'London']

})

创建一个 Excel 写入器

with pd.ExcelWriter('multi_sheet_output.xlsx') as writer:

df1.to_excel(writer, sheet_name='Sheet1', index=False)

df2.to_excel(writer, sheet_name='Sheet2', index=False)

2. 使用 openpyxl 处理多工作表

以下示例展示了如何使用 openpyxl 在一个 Excel 文件中写入多个工作表:

from openpyxl import Workbook

创建一个工作簿

wb = Workbook()

创建两个工作表

ws1 = wb.active

ws1.title = 'Sheet1'

ws2 = wb.create_sheet(title='Sheet2')

向工作表中写入数据

ws1.append(['Name', 'Age', 'City'])

ws1.append(['John', 28, 'New York'])

ws1.append(['Anna', 24, 'Paris'])

ws2.append(['Name', 'Age', 'City'])

ws2.append(['Peter', 35, 'Berlin'])

ws2.append(['Linda', 32, 'London'])

保存工作簿

wb.save('openpyxl_multi_sheet_output.xlsx')

3. 使用 xlsxwriter 处理多工作表

以下示例展示了如何使用 xlsxwriter 在一个 Excel 文件中写入多个工作表:

import xlsxwriter

创建一个工作簿

workbook = xlsxwriter.Workbook('xlsxwriter_multi_sheet_output.xlsx')

创建两个工作表

worksheet1 = workbook.add_worksheet('Sheet1')

worksheet2 = workbook.add_worksheet('Sheet2')

向工作表中写入数据

data1 = [

['Name', 'Age', 'City'],

['John', 28, 'New York'],

['Anna', 24, 'Paris']

]

data2 = [

['Name', 'Age', 'City'],

['Peter', 35, 'Berlin'],

['Linda', 32, 'London']

]

for row_num, row_data in enumerate(data1):

for col_num, cell_data in enumerate(row_data):

worksheet1.write(row_num, col_num, cell_data)

for row_num, row_data in enumerate(data2):

for col_num, cell_data in enumerate(row_data):

worksheet2.write(row_num, col_num, cell_data)

关闭工作簿

workbook.close()

总结

通过本文,我们详细介绍了如何使用 pandas、openpyxl 和 xlsxwriter 将数据写入 Excel 文件。pandas 是最常用的方法,因为它不仅功能强大,还与数据处理高度集成。openpyxl 和 xlsxwriter 提供了更多的样式和格式选项,适用于需要更复杂 Excel 操作的情况。无论选择哪种方法,都可以根据具体需求进行配置和扩展。希望本文对你在使用 Python 处理 Excel 文件时有所帮助。

相关问答FAQs:

用Python写入Excel需要哪些库?
要用Python写入Excel,最常用的库是pandasopenpyxlpandas提供了强大的数据处理能力,而openpyxl则可以处理Excel文件的读写。安装这些库可以使用pip install pandas openpyxl命令。

写入Excel时,如何设置数据格式?
在使用pandasto_excel方法时,可以通过formatters参数设置特定单元格的数据格式。例如,如果你想将日期格式化为“YYYY-MM-DD”,可以在创建DataFrame时,利用pd.to_datetime将列转换为日期类型,然后在写入Excel时指定格式。

如何在Excel中添加多个工作表?
使用pandasExcelWriter可以轻松地在一个Excel文件中添加多个工作表。在创建ExcelWriter对象时,可以指定文件名,并在调用to_excel方法时,通过sheet_name参数为不同的数据框指定不同的工作表名称。这种方式使得数据的组织更加清晰和便捷。

相关文章