使用 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 文件。

希望以上内容对您有所帮助。

使用 Python openpyxl 库读取和写入 Excel 文件:删除不在指定列表中的数据

原文地址: https://www.cveoy.top/t/topic/nC69 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录