|
楼主 |
发表于 2024-6-5 20:43:04
|
显示全部楼层
deduction_sheet_styles = {
'A': {
'border': border.l_thick,
'font': Font(size=12, bold=True),
'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
'width' : 12,
'value' : None
},
'B': {
'border': border.l_drop,
'font': Font(size=12, bold=True),
'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
'width' : 16,
'value' : None
},
'C': {
'border': None,
'font': Font(size=12, bold=True),
'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
'width' : 14,
'value' : None
},
'D': {
'border': border.l_drop,
'font': Font(size=10, bold=True),
'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
'width' : 8,
'value' : 5000
},
'E': {
'border': border.l_thick,
'font': Font(size=10, bold=True),
'alignment': Alignment(horizontal='center', vertical='center',wrap_text=True),
'width' : 8,
'value' : None
}}
这是我导入的美化的字典。。
def fun_beautify(self,sheet_name,dict):
self.sheet = self.excel[sheet_name]
self.column_styles = dict
for self.column in self.sheet.columns:
self.column_letter = self.column[0].column_letter
# print(self.column_letter)#即ABCD.....
if self.column_letter in self.column_styles:
self.style = self.column_styles[self.column_letter]
self.sheet.column_dimensions[self.column_letter].width = self.style["width"]#设置列宽
for self.cell in self.column:
self.cell.border = self.style["border"] # 边框
if self.cell.value == 0 or self.cell.value =="0":
self.cell.value = None
else:
self.cell.font = self.style["font"]#字体
self.cell.alignment = self.style["alignment"]#居中方式
self.sheet.row_dimensions[self.cell.row].height = 27#调整行高
这个是我遍历的方法,,,fun_beautify传入的dict就是一开始那个字典,,,
如果我遍历的过程中,如果这个value == None,那么就pass,否则,就cell.value = 美化字典中的value。。。得怎么样实现这个。 |
|