本文摘要
这篇分享了一个用 Python 批量压缩 Excel 文件的脚本,通过 openpyxl 遍历当前目录下所有 .xlsx 文件,删除其中的空行和空列,并以「_压缩后」为后缀另存,从而减小体积、加快打开速度。文中给出了安装依赖、放置文件、命令行运行等步骤,并提醒该方法无法解决图片导致的文件过大问题,运行前需备份原始文件。
⚠️ 温馨提示
该脚本删除多余空行以达到压缩目的,对于Excel中插入图片导致文件太大无法解决哦~ 效果怎么样?用过的都说好!
·#(抠鼻)直接上代码Python代码:
import openpyxlimport 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文件,以防意外修改。