使用openpyxl删除excel中的整行,是否将第一列作为参考?

2024-05-15 17:31:41 发布

您现在位置:Python中文网/ 问答频道 /正文

此代码仅删除第一列

import openpyxl

wb1=openpyxl.load_workbook('SRS_Re-Import_reportn.xlsx')

wb2=openpyxl.load_workbook('new_file.xlsx')

ws1=wb1['Sheet']

ws2=wb2['Sheet']

ws1 = wb1.active

values = []

for i in range(2,ws1.max_row+1):

  if ws1.cell(row=i,column=1).value in values:

    pass 

  else:

    values.append(ws1.cell(row=i,column=1).value)

for value in values:

  ws2.append([value])

wb2.save('new_file.xlsx')

Tags: innewvalueloadxlsxfilesheetrow
2条回答

您可以使用openpyxl查找和删除重复的行

row_numbers_to_delete = []
rows_to_keep = []
for row in ws.rows:
    working_list = []
    for cell in row:
        working_list.append(cell.value)
    if working_list not in rows_to_keep:
        rows_to_keep.append(working_list)
    else:
        row_numbers_to_delete.append(cell.row)
for row in row_numbers_to_delete:
    ws.delete_rows(
        idx=row,
        amount=1
    )

对于这种简单的情况,pandas库内置了函数来执行这种常见操作

如果没有安装pandas,可以使用pip install pandas安装它

import pandas

input_file = 'SRS_Re-Import_reportn.xlsx'
output_file = 'new_file.xlsx'

df = pandas.read_excel(input_file)
df2 = df.drop_duplicates(subset=1) #use subset to select which column to look for duplicate values
df2.to_excel(output_file)

相关问题 更多 >