Python Openpyxl …删除有特定单词的行

您好使用openpyxl模块来格式化电子表格。 我试图join列A和B与“,”为每一行,并删除列“B”的数字“ – ”我也试图删除任何列中有“无”的行。 我有第一部分,但我无法删除“无”和整个行。 下面你会看到我的代码,然后是我想要实现的前后。 我将非常感谢您的帮助,因为我仍然是Python的noobie。

**Code** import openpyxl wb = openpyxl.load_workbook('Users.xlsx') sheet = wb.get_active_sheet() for rows in sheet['A3':'B11']: try: print(rows[0].value + "," + rows[1].value.replace("-","")) # TODO: remove rows with the word "None" except: if rows == "None": rows[0].value.delete continue **Before** b0119xxx None b0105xxx 534-0498 c0215xxx 534-0498 c0245xxx None d0232xxx 534-0498 d0263xxx 534-0498 d0190xxx 534-0498 d0085xxx None g0009xxx 534-0498 g0169xxx 534-0498 g0221xxx 534-0498 **After** b0105xxx,5340498 c0215xxx,5340498 d0232xxx,5340498 d0263xxx,5340498 d0190xxx,5340498 g0009xxx,5340498 g0169xxx,5340498 g0221xxx,5340498 

据我所知,在openpyxl中不存在删除行的方法。 所以看下面我使用COM来做到这一点。

 import openpyxl filename = 'Users.xlsx' sheetname = 'Sheet1' wb = openpyxl.load_workbook(filename) sheet = wb.get_sheet_by_name(sheetname) for rows in sheet['A3':'B11']: if rows[1].value == 'None': rows[0].value = None rows[1].value = None else: rows[0].value = rows[0].value + "," + rows[1].value.replace("-","") rows[1].value = None wb.save(filename) import win32com.client xl = win32com.client.DispatchEx('Excel.Application') wb = xl.Workbooks.Open(Filename=filename) sheet = wb.Sheets(sheetname) for row in range(3,12): if sheet.Range('A{}'.format(row)).Value is None: sheet.Range('A{}'.format(row)).EntireRow.Delete(Shift=-4162) wb.Save() wb.Close() xl.Quit()