Python Excel 将单元格样式从一个复制到另一个 openpyxl
Python Excel copy cell style from one to another openpyxl
我正在使用 openpyxl 版本 3.0.7 解决以下问题
我想将一个单元格的样式复制到另一个单元格。也就是说,背景颜色、字体等。
但是,我不知道该怎么做。
我最初的想法基本上是做
sheet["E1"].font = sheet["D1"].font
.
那个比特射出 TypeError: unhashable type: 'StyleProxy'
。
仅使用 .style
并不能真正发挥所有作用,因此不适合。
我在网上找到了一些解决方案,比如 the one from here。但是,我不知道如何将它应用于我的特定需求,因为我什至很难将字体从一个单元格转移到另一个单元格。
输入后不久,我找到了解决方案。
from copy import copy
wb = openpyxl.load_workbook('C:\path...\')
sheet = wb["Name of the worksheet"]
sheet["E1"].font = copy(sheet["D1"].font)
sheet["E1"].border = copy(sheet["D1"].border)
sheet["E1"].fill = copy(sheet["D1"].fill)
sheet["E1"].number_format = copy(sheet["D1"].number_format)
sheet["E1"].protection = copy(sheet["D1"].protection)
sheet["E1"].alignment = copy(sheet["D1"].alignment)
唯一剩下要做的就是循环执行此操作。这可以通过做类似
的事情来实现
for i in range(....):
sheet["E" + str(i)].font= copy(sheet["D" +str(i)].font)
etc.
我正在使用 openpyxl 版本 3.0.7 解决以下问题 我想将一个单元格的样式复制到另一个单元格。也就是说,背景颜色、字体等。 但是,我不知道该怎么做。
我最初的想法基本上是做
sheet["E1"].font = sheet["D1"].font
.
那个比特射出 TypeError: unhashable type: 'StyleProxy'
。
仅使用 .style
并不能真正发挥所有作用,因此不适合。
我在网上找到了一些解决方案,比如 the one from here。但是,我不知道如何将它应用于我的特定需求,因为我什至很难将字体从一个单元格转移到另一个单元格。
输入后不久,我找到了解决方案。
from copy import copy
wb = openpyxl.load_workbook('C:\path...\')
sheet = wb["Name of the worksheet"]
sheet["E1"].font = copy(sheet["D1"].font)
sheet["E1"].border = copy(sheet["D1"].border)
sheet["E1"].fill = copy(sheet["D1"].fill)
sheet["E1"].number_format = copy(sheet["D1"].number_format)
sheet["E1"].protection = copy(sheet["D1"].protection)
sheet["E1"].alignment = copy(sheet["D1"].alignment)
唯一剩下要做的就是循环执行此操作。这可以通过做类似
的事情来实现for i in range(....):
sheet["E" + str(i)].font= copy(sheet["D" +str(i)].font)
etc.