安装 Pandas 和 openpyxl

首先,确保已经安装了 Pandas 和 openpyxl。可以通过 pip 安装

pip install pandas openpyxl

创建 DataFrame


import pandas as pd

# 创建 DataFrame

df1 = pd.DataFrame({

'姓名': ['张三', '李四', '王五'],

'年龄': [25, 30, 35],

'城市': ['北京', '上海', '广州']

})

df2 = pd.DataFrame({

'姓名': ['赵六', '孙七', '周八'],

'年龄': [40, 45, 50],

'城市': ['深圳', '成都', '杭州']

})

print(df1)

print(df2)

使用 openpyxl 合并单元格

 

import pandas as pd

from openpyxl import Workbook

from openpyxl.utils.dataframe import dataframe_to_rows

# 创建 DataFrame

df1 = pd.DataFrame({

'姓名': ['张三', '李四', '王五'],

'年龄': [25, 30, 35],

'城市': ['北京', '上海', '广州']

})

# 创建一个新的工作簿

wb = Workbook()

ws = wb.active

# 将 DataFrame 写入工作表

for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)):

for c_idx, value in enumerate(row, 1):

ws.cell(row=r_idx+1, column=c_idx, value=value)

# 合并单元格

ws.merge_cells('A1:B1') # 合并 A1 和 B1 单元格

# 保存 Excel 文件

wb.save('merged_cells.xlsx')

合并 DataFrame 到不同的工作表

 

import pandas as pd

# 创建 DataFrame

df1 = pd.DataFrame({

'姓名': ['张三', '李四', '王五'],

'年龄': [25, 30, 35],

'城市': ['北京', '上海', '广州']

})

df2 = pd.DataFrame({

'姓名': ['赵六', '孙七', '周八'],

'年龄': [40, 45, 50],

'城市': ['深圳', '成都', '杭州']

})

# 合并 DataFrame 到不同的工作表

with pd.ExcelWriter('combined_sheets.xlsx', engine='openpyxl') as writer:

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

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

合并多个 Excel 文件

 

import pandas as pd

# 读取多个 Excel 文件

files = ['file1.xlsx', 'file2.xlsx']

dfs = []

for file in files:

dfs.append(pd.read_excel(file))

# 合并所有 DataFrame

combined = pd.concat(dfs, ignore_index=True)

# 保存合并后的数据

combined.to_excel('combined_files.xlsx', index=False)

使用 openpyxl 合并单元格并保留数据

import pandas as pd

from openpyxl import Workbook

from openpyxl.utils.dataframe import dataframe_to_rows

# 创建 DataFrame

df1 = pd.DataFrame({

'姓名': ['张三', '李四', '王五'],

'年龄': [25, 30, 35],

'城市': ['北京', '上海', '广州']

})

# 创建一个新的工作簿

wb = Workbook()

ws = wb.active

# 将 DataFrame 写入工作表

for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)):

for c_idx, value in enumerate(row, 1):

ws.cell(row=r_idx+1, column=c_idx, value=value)

# 合并单元格但保留数据

ws.merge_cells('A1:B1', start_row=1, start_column=1, end_row=1, end_column=2)

# 保存 Excel 文件

wb.save('merged_cells_with_data.xlsx')

合并多个 DataFrame 到不同工作表

 

import pandas as pd

from openpyxl import Workbook

from openpyxl.utils.dataframe import dataframe_to_rows

# 创建 DataFrame

df1 = pd.DataFrame({

'姓名': ['张三', '李四', '王五'],

'年龄': [25, 30, 35],

'城市': ['北京', '上海', '广州']

})

df2 = pd.DataFrame({

'姓名': ['赵六', '孙七', '周八'],

'年龄': [40, 45, 50],

'城市': ['深圳', '成都', '杭州']

})

# 创建一个新的工作簿

wb = Workbook()

# 添加不同的工作表

ws1 = wb.create_sheet(title='Sheet1')

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

# 将 DataFrame 写入不同的工作表

for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)):

for c_idx, value in enumerate(row, 1):

ws1.cell(row=r_idx+1, column=c_idx, value=value)

for r_idx, row in enumerate(dataframe_to_rows(df2, index=False, header=True)):

for c_idx, value in enumerate(row, 1):

ws2.cell(row=r_idx+1, column=c_idx, value=value)

# 保存 Excel 文件

wb.save('multiple_sheets.xlsx')

使用 openpyxl 合并单元格并设置样式

 

import pandas as pd

from openpyxl import Workbook

from openpyxl.utils.dataframe import dataframe_to_rows

from openpyxl.styles import Font, Alignment

# 创建 DataFrame

df1 = pd.DataFrame({

'姓名': ['张三', '李四', '王五'],

'年龄': [25, 30, 35],

'城市': ['北京', '上海', '广州']

})

# 创建一个新的工作簿

wb = Workbook()

ws = wb.active

# 设置字体样式

font_style = Font(bold=True, color="FF0000")

alignment = Alignment(horizontal="center", vertical="center")

# 将 DataFrame 写入工作表

for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)):

for c_idx, value in enumerate(row, 1):

cell = ws.cell(row=r_idx+1, column=c_idx, value=value)

if r_idx == 0: # 如果是标题行,则设置样式

cell.font = font_style

cell.alignment = alignment

# 合并单元格并设置样式

ws.merge_cells('A1:B1', start_row=1, start_column=1, end_row=1, end_column=2)

ws['A1'].font = font_style

ws['A1'].alignment = alignment

# 保存 Excel 文件

wb.save('merged_cells_with_styles.xlsx')

合并多个 Excel 文件到一个工作簿的不同工作表

 

import pandas as pd

from openpyxl import Workbook

from openpyxl.utils.dataframe import dataframe_to_rows

# 读取多个 Excel 文件

files = ['file1.xlsx', 'file2.xlsx']

dfs = []

for file in files:

dfs.append(pd.read_excel(file))

# 创建一个新的工作簿

wb = Workbook()

# 添加不同的工作表并将数据写入

for idx, df in enumerate(dfs):

ws = wb.create_sheet(title=f'Sheet{idx+1}')

for r_idx, row in enumerate(dataframe_to_rows(df, index=False, header=True)):

for c_idx, value in enumerate(row, 1):

ws.cell(row=r_idx+1, column=c_idx, value=value)

# 保存 Excel 文件

wb.save('combined_files_multiple_sheets.xlsx')

使用 openpyxl 合并单元格并设置条件格式

 

import pandas as pd

from openpyxl import Workbook

from openpyxl.utils.dataframe import dataframe_to_rows

from openpyxl.styles import PatternFill, Font

from openpyxl.formatting.rule import CellIsRule

# 创建 DataFrame

df1 = pd.DataFrame({

'姓名': ['张三', '李四', '王五'],

'年龄': [25, 30, 35],

'城市': ['北京', '上海', '广州']

})

# 创建一个新的工作簿

wb = Workbook()

ws = wb.active

# 设置字体样式

font_style = Font(bold=True, color="FF0000")

fill_style = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")

# 将 DataFrame 写入工作表

for r_idx, row in enumerate(dataframe_to_rows(df1, index=False, header=True)):

for c_idx, value in enumerate(row, 1):

cell = ws.cell(row=r_idx+1, column=c_idx, value=value)

if r_idx == 0: # 如果是标题行,则设置样式

cell.font = font_style

# 合并单元格

ws.merge_cells('A1:B1', start_row=1, start_column=1, end_row=1, end_column=2)

# 设置条件格式

rule = CellIsRule(operator='equal', formula=['"北京"'], stopIfTrue=True, fill=fill_style)

ws.conditional_formatting.add('C1:C3', rule)

# 保存 Excel 文件

wb.save('merged_cells_with_conditional_formatting.xlsx')

合并 DataFrame 并去除重复数据

 

import pandas as pd

# 创建 DataFrame

df1 = pd.DataFrame({

'姓名': ['张三', '李四', '王五'],

'年龄': [25, 30, 35],

'城市': ['北京', '上海', '广州']

})

df2 = pd.DataFrame({

'姓名': ['赵六', '孙七', '周八'],

'年龄': [40, 45, 50],

'城市': ['深圳', '成都', '杭州']

})

# 合并 DataFrame

combined = pd.concat([df1, df2], ignore_index=True)

# 去除重复数据

unique_combined = combined.drop_duplicates()

# 保存合并后的数据

unique_combined.to_excel('unique_combined_files.xlsx', index=False)

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末自行领取】【保证100%免费】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐