Excel 拆分第一列单元格内容到新工作表并保留样式
Excel 拆分第一列单元格内容到新工作表并保留样式
本文介绍如何使用 Python 和 openpyxl 库将 Excel 工作表中第一列单元格内容拆分到新的工作表,同时保留原工作表中的字体颜色和填充颜色。
步骤:
- 导入
openpyxl库和Font、PatternFill类:
from openpyxl import load_workbook
from openpyxl.styles import Font, PatternFill
- 读取 Excel 文件:
wb = load_workbook('your_excel_file.xlsx')
sheet = wb['Sheet1'] # 替换为你的工作表名称
- 获取第一列单元格内容:
col1_values = [cell.value for cell in sheet['A']] # 替换为你的列字母
- 循环遍历第一列单元格内容,创建新工作表:
unique_values = set(col1_values)
for value in unique_values:
count = col1_values.count(value)
new_sheet_name = f'{value} ({count} 人)'
new_sheet = wb.create_sheet(title=new_sheet_name)
# 在新工作表的第一行插入原工作表A1单元格的内容
new_sheet.insert_rows(1)
for col_num, cell in enumerate(sheet[1], 1):
new_sheet.cell(row=1, column=col_num, value=cell.value)
# 复制字体和填充颜色到新单元格
new_sheet.cell(row=1, column=col_num).font = cell.font
new_sheet.cell(row=1, column=col_num).fill = cell.fill
# 添加第二行单元格内容到新工作表
new_sheet.append(row2_values)
# 添加第一列单元格内容到新工作表
for row_num, cell_value in enumerate(col1_values):
if cell_value == value:
new_row_values = [cell.value for cell in sheet[row_num + 2]]
new_sheet.append(new_row_values)
# 复制字体和填充颜色到新单元格
for col_num, cell in enumerate(sheet[row_num + 2], 1):
new_sheet.cell(row=new_sheet.max_row, column=col_num).font = cell.font
new_sheet.cell(row=new_sheet.max_row, column=col_num).fill = cell.fill
- 保存 Excel 文件:
wb.save('new_excel_file.xlsx') # 替换为你的新文件名
代码解释:
cell.font和cell.fill属性用于获取原单元格的字体和填充颜色。- 将获取的字体和填充颜色赋值给新单元格的
font和fill属性,即可保留原单元格的样式。
注意:
row2_values是第二行单元格内容,请根据你的实际情况进行修改。Sheet1是原工作表的名称,请根据你的实际情况进行修改。new_excel_file.xlsx是新文件的名称,请根据你的实际情况进行修改。
希望这篇教程能帮助你顺利将 Excel 工作表拆分并保留样式。
原文地址: https://www.cveoy.top/t/topic/fXjn 著作权归作者所有。请勿转载和采集!