温馨提示
该脚本删除多余空行以达到压缩目的,对于Excel中插入图片导致文件太大无法解决哦~效果怎么样?用过的都说好!
·直接上代码Python代码:
import openpyxl
import os
# 获取当前工作目录
current_directory = os.getcwd()
# 列出当前目录下的所有文件
files_in_directory = os.listdir(current_directory)
# 遍历文件,处理Excel文件
for file_name in files_in_directory:
if file_name.endswith('.xlsx'):
# 拼接文件路径
file_path = os.path.join(current_directory, file_name)
# 打开Excel文件
workbook = openpyxl.load_workbook(file_path)
sheet = workbook.active
# 删除空行
rows_to_delete = []
for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row):
if all(cell.value is None for cell in row):
rows_to_delete.append(row)
for row in rows_to_delete:
sheet.delete_rows(row[0].row, 1)
# 删除空列
cols_to_delete = []
for col in sheet.iter_cols(min_col=1, max_col=sheet.max_column):
if all(cell.value is None for cell in col):
cols_to_delete.append(col)
for col in cols_to_delete:
sheet.delete_cols(col[0].column, 1)
# 生成修改后的文件名
file_name_without_extension, file_extension = os.path.splitext(file_name)
modified_file_name = f"{file_name_without_extension}_压缩后{file_extension}"
# 保存修改后的Excel文件
modified_file_path = os.path.join(current_directory, modified_file_name)
workbook.save(modified_file_path)
# 关闭Excel文件
workbook.close()
print(f"已保存修改后的文件为: {modified_file_path}")
如何使用?
来自ChatGPT的回答:
以上代码是一个Python脚本,用于遍历当前工作目录下的所有Excel文件(.xlsx扩展名),删除其中的空行和空列,然后将修改后的文件保存在同一目录下,并在文件名末尾添加"_压缩后"。
下面是使用以上代码的详细步骤:
·(其实,你应该先确定自己安装了Python)
安装所需的库:
首先,确保你已经安装了openpyxl
库。如果没有安装,可以使用以下命令来安装它:pip install openpyxl
- 准备Excel文件:
将要处理的Excel文件(.xlsx格式)放在与脚本相同的目录中。你可以将这些文件复制到脚本文件所在的文件夹中,或者将脚本放在包含Excel文件的文件夹中。 运行脚本:
打开命令行终端,导航到包含脚本和Excel文件的目录。然后运行以下命令来执行脚本:python your_script.py
其中,
your_script.py
应该替换为包含以上代码的Python脚本文件的名称。- 执行结果:
脚本将遍历当前目录下的所有Excel文件,删除空行和空列,并将修改后的文件保存在同一目录中,文件名末尾会添加"_压缩后"。脚本会在命令行中打印出每个处理过的文件的路径。 - 完成:
执行脚本后,你将在同一目录中找到已经处理好的Excel文件,它们的文件名末尾会添加"_压缩后"。这些文件中的空行和空列已经被删除。
请注意,运行脚本前,请确保你已经备份了原始Excel文件,以防意外修改。
Excel文件太大打开太慢?试试这个脚本! by https://oneszhang.com/archives/excel-compress.html