删除空行-openpyxl

DJ爷爷

在花了最后几个小时试图找到一种方法之后,我决定问一下。

我已经多次阅读了openpyxl文档,并仔细阅读了这里这里提出的问题,甚至是这本在线书中的章节,但这些都没有真正回答我的尝试。

这是我现在拥有的代码:

for row in ws.iter_rows():
    i = 1
    if row[i].internal_value() == None:
        ws.Rows(i).Delete()
    else:
        i + 1

我已经尝试了很多不同的方法,现在我遇到了一个错误:

TypeError:“ NoneType”对象不可调用

我在做什么错,我该如何解决这个问题,以便遍历所有行并删除完全为空的行,或者删除(如果易于实现的话)第一个单元为空的行?

谢谢

机械肉

据我所知,openpyxl没有提供删除行的方法。您可以改用COM,例如:

import win32com.client

filename = 'c:/my_file.xlsx'
sheetname = 'Sheet1'
xl = win32com.client.DispatchEx('Excel.Application')
wb = xl.Workbooks.Open(Filename=filename) 
ws = wb.Sheets(sheetname)

begrow = 1
endrow = ws.UsedRange.Rows.Count
for row in range(begrow,endrow+1): # just an example
  if ws.Range('A{}'.format(row)).Value is None:
    ws.Range('A{}'.format(row)).EntireRow.Delete(Shift=-4162) # shift up

wb.Save()
wb.Close()
xl.Quit()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章