如何使用 python pywin32 删除 excel 中的行
how to delete row in excel with python pywin32
亲爱的大家。
如果单元格 (i,5) 没有值,我想用 python pywin32 at python 3.6 删除 excel 中的行。
这是我的代码。
def qms(self):
fname = QtWidgets.QFileDialog.getOpenFileName(self)
if fname[0]:
self.Filename.setText(fname[0])
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = True
f = excel.Workbooks.Open(fname[0])
fs = f.ActiveSheet
lastrow = fs.UsedRange.Rows.Count
for i in range(3, lastrow):
if not fs.Cells(i,5).Value :
fs.getCells().deleteRows(i-1,1,True)
excel.Workbooks.save()
excel.Quit()
我认为 fs.getCells().deleteRow(i-1,1,True) 有问题。
我无法理解。你能帮帮我吗?
for i in range(lastrow, 2, -1):
if fs.Cells(i,5).Value != ""
fs.Rows(i).EntireRow.Delete()
或者您可以一次全部删除:
fs.UsedRange.Offset(2).Columns(5).SpecialCells(4).EntireRow.Delete()
https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-specialcells-method-excel
def qms(self):
fname = QtWidgets.QFileDialog.getOpenFileName(self)
if fname[0]:
self.Filename.setText(fname[0])
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = True
f = excel.Workbooks.Open(fname[0])
fs = f.ActiveSheet
lastrow = fs.UsedRange.Rows.Count
for i in range(lastrow, 2, -1):
if fs.Cells(i,5).Value == None or fs.Cells(i,5).Value == "":
fs.Rows(i).EntireRow.Delete()
亲爱的大家。
如果单元格 (i,5) 没有值,我想用 python pywin32 at python 3.6 删除 excel 中的行。
这是我的代码。
def qms(self):
fname = QtWidgets.QFileDialog.getOpenFileName(self)
if fname[0]:
self.Filename.setText(fname[0])
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = True
f = excel.Workbooks.Open(fname[0])
fs = f.ActiveSheet
lastrow = fs.UsedRange.Rows.Count
for i in range(3, lastrow):
if not fs.Cells(i,5).Value :
fs.getCells().deleteRows(i-1,1,True)
excel.Workbooks.save()
excel.Quit()
我认为 fs.getCells().deleteRow(i-1,1,True) 有问题。 我无法理解。你能帮帮我吗?
for i in range(lastrow, 2, -1):
if fs.Cells(i,5).Value != ""
fs.Rows(i).EntireRow.Delete()
或者您可以一次全部删除:
fs.UsedRange.Offset(2).Columns(5).SpecialCells(4).EntireRow.Delete()
https://msdn.microsoft.com/en-us/vba/excel-vba/articles/range-specialcells-method-excel
def qms(self):
fname = QtWidgets.QFileDialog.getOpenFileName(self)
if fname[0]:
self.Filename.setText(fname[0])
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible = True
f = excel.Workbooks.Open(fname[0])
fs = f.ActiveSheet
lastrow = fs.UsedRange.Rows.Count
for i in range(lastrow, 2, -1):
if fs.Cells(i,5).Value == None or fs.Cells(i,5).Value == "":
fs.Rows(i).EntireRow.Delete()