批量删除多张表格中的指定列,尝试以下方法
1、手动删除
少量表格,简单粗暴,表格成百上千,删除到猴年马月?不妨尝试脚本自动删除
2、脚本删除
2.1 代码获取
以下是删除多张表格的L列的范例代码:
下面展示一些 内联代码片。
1)引入库文件
下面展示一些 内联代码片
。
//引入操作表格的库文件
import os
import openpyxl;
2)删除指定行
2.1)这里从第X行起,包括第X行,删除B列为空的内容
//构件函数:从第start_row起,包括第start_row行,删除B列为空的内容
def delete_column_and_rows(file_path, target_folder, start_row):
# 加载工作簿
wb = openpyxl.load_workbook(file_path)
# 遍历工作簿中的每一个工作表
for sheet in wb.worksheets:
# 记录需要删除的行号
rows_to_delete = []
# 遍历行,找出B列为空的行
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)
# 构建新的文件路径
new_file_path = os.path.join(target_folder, os.path.basename(file_path))
# 保存修改后的工作簿到新位置
wb.save(new_file_path);
2.2)设置输入路径和输出路径,输入路径为存放需要处理表格的路径;输出路径则为处理后的表格路径
//路径设置
# 源文件夹路径
source_folder = 'source_folder'
# 目标文件夹路径
target_folder = 'target_folder';
# 如果目标文件夹不存在,则创建它
if not os.path.exists(target_folder):
os.makedirs(target_folder)
2.3)设置开始删除行的位置
# 开始删除行的位置
start_row = 5 # 从第5行开始删除
2.4)获取输入路径下的excel文件
# 获取源文件夹中所有的Excel文件
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)
delete_column_and_rows(file_path, target_folder, start_row)
2.2 可执行exe文件
为了保证没有搭建python环境的用户使用该方法,上述是打包好的exe工具:
鉴于是打包好的exe,运行“批量删除表格特定列.exe”时,需要确保excel文件存放的输入文件目录和输出文件目录符合以下要求,方可运行成功:
1)待处理表格存放的路径
C:\Users\27411\Desktop\test\before
1)处理后表格存放的路径
C:\Users\27411\Desktop\test\after