先导入库:
# !/bin/env python
# -*- coding:utf-8 -*-
import openpyxl as op
from openpyxl.styles import Font
一、Python用openpyxl库打开 bom_auto.xlsx 工作表
path = './bom_auto.xlsx'
# 2.打开Excel文件
wb = op.load_workbook(path)
# 3.获取指定Sheet对象
sheet1 = wb['原表']
二、openpyxl库复制 Sheet 工作表
# 获取工作表名字列表
sheet_names = wb.sheetnames
print(sheet_names)
# 判断 "Sheet1" 是否在工作表名字列表中,若tip_sheet不存在,新增 tip_sheet
if "新BOM表" in sheet_names:
print(" 新BOM表 sheet1 已存在")
else:
# 4.复制 Sheet 对象
sheet3 = wb.copy_worksheet(sheet1)
# 5. 重新命名 sheet3 对象
sheet3.title = '新BOM表'
# 保存
wb.save('./bomexcel_auto.xlsx')
# 判断 "tip_sheet" 是否在工作表名字列表中,若tip_sheet不存在,新增 tip_sheet
if "tip_sheet" in sheet_names:
print(" 温馨提示tip_sheet 已存在")
else:
wb.create_sheet(title='温馨提示', index=0)
wb.save(path)
wb.save(path)
三、openpyxl 使用remove、join、append给单元格赋值
给单元格赋值
b = f'{count + 1}' + "行" + str( new_excel[f"E{count + 2}"].value)
tip_sheet[f"A{count + 5}"] = b
单元格比对
new_excel[f"E{count + 2}"].value == operate_excel[f"B{count + 2}"].value:
remove移除、join拼接
# 拼接并赋值给new_excel[A1]
new_excel[A1] = ",".join(map(str, A))
append增加
new_excel_weihao.append(value)
字段以“,”切割
# split 切割
new_excel_weihao = new_excel_weihao.split(",")
四、用openpyxl设置Excel单元格样式
from openpyxl import Workbook
from openpyxl.styles import PatternFill, GradientFill
font = Font(
name="微软雅黑", # 字体
size=15, # 字体大小
color="0000FF", # 字体颜色,用16进制rgb表示
bold=True, # 是否加粗,True/False
italic=True, # 是否斜体,True/False
strike=None, # 是否使用删除线,True/False
underline="double", # 下划线, 可选'singleAccounting', 'double', 'single', 'doubleAccounting'
)
# 设置单元格的填充和渐变
fill = PatternFill(
patternType="solid", # 填充类型,可选none、solid、darkGray、mediumGray、lightGray、lightDown、lightGray、lightGrid
fgColor="F562a4", # 前景色,16进制rgb
bgColor="0000ff", # 背景色,16进制rgb
# fill_type=None, # 填充类型
# start_color=None, # 前景色,16进制rgb
# end_color=None # 背景色,16进制rgb
)
tip_sheet["A1"].fill = GradientFill(
degree=60, # 角度
stop=("000000", "FFFFFF") # 渐变颜色,16进制rgb
)