【代码】Python去除Excel中不规则空白单元格的方法

这里提供一种基于openpyxl库的解决方案:

以下为去除excel中每一行中的空白单元格并将右侧单元格内容左移的代码,代码为原创,表述不清还请见谅。

import openpyxl
from tkinter import filedialog, Tk

def process_excel(file_path):
    # 打开Excel文件
    wb = openpyxl.load_workbook(file_path)
    # 选择第一个sheet
    sheet = wb.active

    # 遍历每一行
    for row in sheet.iter_rows():
        # 初始化空单元格列表
        empty_cells = []
        values = []
        # 遍历行中的每个单元格
        for cell in row:
            # 如果单元格为空,则记录下来
            if not cell.value:
                empty_cells.append(cell)
            else:
                values.append(cell.value)
        
        # 将所有非空值重新填入行中
        for i, value in enumerate(values):
            row[i].value = value
        # 将剩余的单元格清空
        for i in range(len(values), len(row)):
            row[i].value = None

    # 保存修改后的Excel文件
    wb.save(file_path)
    wb.close()
    print(f"文件 '{file_path}' 处理完成。")

def select_excel_file():
    root = Tk()
    root.withdraw()  # 隐藏主窗口

    file_path = filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx;*.xls")])
    if file_path:
        print(f"选中的Excel文件:{file_path}")
        process_excel(file_path)
    else:
        print("未选择任何文件。")

if __name__ == "__main__":
    select_excel_file()

这段代码首先使用 tkinter 的文件对话框来选择要处理的 Excel 文件然后使用process_excel 函数打开指定的 Excel 文件并选择第一个工作表。遍历每一行,将所有非空单元格的值收集到 values 列表中,然后将这些值从左到右重新填入行中,并将剩余的单元格清空。最终,修改后的Excel文件将覆盖在源文件上

以此类推,以下为去除excel中每一列中的空白单元格并将下方单元格内容上移的代码 ,以下源码来自用python将excel中每一列中的空白单元格去除,下方单元格上移 - 我爱学习网 (5axxw.com),可根据上方代码进行修改。

import openpyxl
# 打开Excel文件
wb = openpyxl.load_workbook('example.xlsx')
# 选择第一个sheet
sheet = wb.active
# 遍历每一列
for column in sheet.columns:
    # 初始化空单元格列表
    empty_cells = []
    # 遍历列中的每个单元格
    for cell in column:
        # 如果单元格为空,则记录下来
        if not cell.value:
            empty_cells.append(cell)
    # 将空单元格删除并将下方单元格上移
    for empty_cell in empty_cells:
        sheet.delete_rows(empty_cell.row, 1)
    # 将下方单元格上移
    for i in range(len(column)-1):
        if not column[i].value:
            column[i], column[i+1] = column[i+1], column[i]
# 保存修改后的Excel文件
wb.save('example_updated.xlsx')

hhhh我是个学音乐的,上手python只有两天,这是在我实际解决问题的一些实际解法,算是拾人牙慧,欢迎大佬指点,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值