批量删除excel的指定行和指定列

1、手动删除

少量表格,简单粗暴,表格成百上千,删除到猴年马月?不妨尝试脚本自动删除

2、脚本删除

2.1使用场景

以如下表格为例,删除B列为空所在的行(例如蓝色部分),同时删除K列(黄色部分)
在这里插入图片描述
删除后在这里插入图片描述### 2.2删除思路
1)引入库文件
以下是删除多张表格的L列的范例代码:
下面展示一些 内联代码片。

//引入库文件
import os
import openpyxl;

2)构造删除指定行和列的函数体
以下是删除多张表格的L列的范例代码:
下面展示一些 内联代码片。

//引入库文件
def delete_column_and_rows(file_path, target_folder, column_index, start_row):
    # 1、加载工作簿
    wb = openpyxl.load_workbook(file_path)
    
    # 2、删除指定行
    for sheet in wb.worksheets:
        rows_to_delete = []
        for row in range(start_row, sheet.max_row + 1):
            cell_value = sheet.cell(row=row, column=2).value
            if cell_value is None or (isinstance(cell_value, str) and cell_value.strip() == ""):
                rows_to_delete.append(row)
        for row in reversed(rows_to_delete):
            sheet.delete_rows(row)
  
      # 3、删除指定列
        # Step1:检查某个列索引是否在工作表的列范围内
        # Step2:删除指定列column_index
        if column_index <= sheet.max_column: # max_column属性用于获取工作表中最大的列索引
            sheet.delete_cols(column_index)
    
    # 4、构建新的文件路径
    new_file_path = os.path.join(target_folder, os.path.basename(file_path))
    # 5、保存修改后的工作簿到新位置
    wb.save(new_file_path);

3)参数说明

//参数说明
# 源文件夹路径
source_folder = 'C:/Users/27411/Desktop/test/before/N11'
# 目标文件夹路径
target_folder = 'C:/Users/27411/Desktop/test/after'

# 如果目标文件夹不存在,则创建它
if not os.path.exists(target_folder):
    os.makedirs(target_folder)

# 第L列的索引(例如,第3列就是索引3)
column_index = 12  # 应该用实际的列号替换L

# 开始删除行的位置
start_row = 5  # 从第5行开始删除

# 执行删除指定行和列的行数
for file_name in os.listdir(source_folder):
    if file_name.endswith('.xlsx') or file_name.endswith('.xls'):
        file_path = os.path.join(source_folder, file_name) # 构造完整的excel文件路径
        delete_column_and_rows(file_path, target_folder, column_index, start_row) # 调用函数;

3使用途径

3.1代码运行

适用人员:具有一定编程基础,根据上述代码思路可以修改参数。

3.2exe文件运行

适用人员:不具备编程基础。
exe文件:删除L列和B列为空所在行.exe
获取途径:下载exe文件
使用方式说明
1)删除场景:删除多张表格的L列内容、B列为空所在的行内容(从第5行开始)
2)待处理表格的存放的路径:C:/Users/27411/Desktop/test/before/N11
3)处理后表格存放的路径:C:/Users/27411/Desktop/test/after
将2)和3)的路径准备好,运行后即可得到处理后的表格

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值