openpyxl批量删除表格中的空白行,并处理数据样式

该篇博客介绍了如何使用Python的openpyxl库来读取和操作Excel文件。首先,通过获取并检查第一列的值来批量删除包含空值的行。接着,对删除空白行后的表格进行样式设置,包括设置单元格填充颜色、字体样式和对齐方式,以实现数据的水平和垂直居中以及不同行的背景色交替。最后,保存修改后的Excel文件。这个过程对于数据处理和报告自动化非常有用。
摘要由CSDN通过智能技术生成

demo:

from excel封装关键字 import *
from openpyxl.styles import Font  # 导入字体模块
from openpyxl.styles import PatternFill  # 导入填充模块
from openpyxl.styles import Alignment

Color1 = 'ffeb9c' # 橙色
Color2 = 'c0c0c0'  #浅灰
Color3 = '000000' #黑色
fill_yellow = PatternFill('solid', fgColor=Color1)  # 设置填充颜色为 橙色
fill_grey = PatternFill('solid', fgColor=Color2)  # 设置填充颜色为 橙色
font = Font(u'等线', size=15, bold=True, italic=False, strike=False,color=Color3)  # 设置字体样式 bold=加粗 italic=斜体 strike=杠掉
alignment =Alignment(horizontal='center',vertical='center')    #水平和垂直的居中

excel = ParseExcel()
workbook1 = excel.loadWorkBook(excelPathAndName=r'C:\Users\frank\Desktop\for_test.xlsx')
sheet = excel.getSheetByIndex(sheetIndex = 0)

#获得删除之前的总行数
maxrow_before = sheet.max_row

#获得第一列每行的value,用于判断是否为none(是否需要删除)
list = excel.getColumn(sheet=sheet,colNo=1)
row_value_list = [i.value for i in list]


#批量删除表格中的空白行  由于删除的一行,下面的行数会顶上来,所以需要额外定义一个delete_index
delete_index = 1
for i in range(maxrow_before):
    if row_value_list[i] != None:
        delete_index += 1
    else:
        sheet.delete_rows(idx=delete_index)
        print('已删除第%d行'%delete_index)

#获得删除之后的总行数和总列数,用于更改数据样式
maxrow_after = sheet.max_row
maxcol = sheet.max_column

for i in range(maxrow_after):
    for j in range(maxcol):
        if i%2 == 0:
            sheet.cell(row=i+1 , column=j+1).fill = fill_grey
            sheet.cell(row=i + 1, column=j + 1).alignment = alignment
        else:
            sheet.cell(row=i + 1, column=j + 1).alignment = alignment
        sheet.cell(row=1 , column=j+1).fill = fill_yellow
        sheet.cell(row=1 , column=j+1).font = font
        sheet.cell(row=1 , column=j+1).alignment = alignment

workbook1.save(filename=r'C:\Users\frank\Desktop\for_test.xlsx')
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值