Python 用openpyxl库复制 Sheet 工作表 、remove、join、append给单元格赋值、设置Excel单元格样式

先导入库:

# !/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
)


                
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值