这里提供一种基于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只有两天,这是在我实际解决问题的一些实际解法,算是拾人牙慧,欢迎大佬指点,谢谢。