使用 Python openpyxl 库读取和写入 Excel 文件:删除不在指定列表中的数据
使用 Python 中的 openpyxl 库可以方便地读取和写入 Excel 文件。以下是一个示例代码,展示如何删除 Excel 文件中不在指定列表中的数据。
from openpyxl import load_workbook, Workbook
datafilepath = './doubledata/44个双字.xlsx'
filepath = './doubledata/doubleresult_calligraphy.xlsx'
# 读取数据文件,获取第一列前 44 项数据
data = []
dataworkbook = loadworkbook(datafilepath)
dataws = dataworkbook.active
for i in range(1, 45):
data.append(data_ws.cell(row=i, column=1).value)
# 加载 Excel 文件
workbook = loadworkbook(filepath)
# 获取第一个工作表
ws = workbook.active
# 处理数据
for i in range(2, ws.maxrow + 1):
for j in range(2, ws.maxcolumn + 1, 2):
# 如果当前元素不在 'data' 数组中
if ws.cell(row=i, column=j).value not in data:
# 删除当前元素和相邻元素
ws.cell(row=i, column=j).value = None
ws.cell(row=i, column=j + 1).value = None
# 重新遍历整个表格,将空数据向上填补
for j in range(1, ws.max_column + 1):
for k in range(i - 1, 1, -1):
current_cell = ws.cell(row=k, column=j)
next_cell = ws.cell(row=k + 1, column=j)
if current_cell.value is None:
current_cell.value = next_cell.value
next_cell.value = None
# 写入新的工作表数据
newworkbook = Workbook()
newws = newworkbook.active
for i in range(1, ws.maxrow + 1):
for j in range(1, ws.maxcolumn + 1):
newws.cell(row=i, column=j).value = ws.cell(row=i, column=j).value
# 保存新的 Excel 文件
newworkbook.save(filepath)
需要注意的是:
- openpyxl 库中的单元格索引是从 1 开始,而不是从 0 开始。因此,在代码中需要将循环变量 i 和 j 都从 1 开始。
- 当删除单元格中的数据时,不能直接使用
del关键字,而是需要将单元格的value设置为None。 - 需要将新的工作表数据写入一个新的工作簿中,并保存为一个新的 Excel 文件。
希望以上内容对您有所帮助。
原文地址: https://www.cveoy.top/t/topic/nC69 著作权归作者所有。请勿转载和采集!