如何使用OpenPyXl清除Excel工作簿中的值范围

And*_*rew 12 excel vba python-2.7 openpyxl

我有一个工作簿,我希望使用OpenPyXI清除一系列值.到目前为止,我有以下内容:

# Import OpenPyXl module.
from openpyxl import load_workbook


# Load workbook.
wb = load_workbook(filename = 'testing.xlsx')

# Make a variable with a worksheet you want to view/modify.
sheet = wb['AR Cutoff']

# Change value of A3.
sheet['A3'] = 'Assigned value'
Run Code Online (Sandbox Code Playgroud)

简而言之,我试图在OpenPyXL中做与以下VBA相同的事情:

Worksheets("Sheet1").Range("A1:G37").Clear
Run Code Online (Sandbox Code Playgroud)

谢谢!

Flo*_* B. 17

似乎库没有直接清除或设置范围的方法.所以你最好的机会可能是清除每个细胞的价值:

for row in ws['A1:G37']:
  for cell in row:
    cell.value = None
Run Code Online (Sandbox Code Playgroud)


Max*_*axU 7

如果您想截断(删除并重新创建)整个工作表,包括样式、网格样式以及其他所有内容,您都可以通过以下方式进行:

wb = load_workbook(filename = 'testing.xlsx')

sheet_name = 'AR Cutoff'

# index of [sheet_name] sheet
idx = wb.sheetnames.index(sheet_name)

# remove [sheet_name]
# old versions: wb.remove(writer.book.worksheets[idx])
# for new versions, tested with 3.0.3
ws = wb.get_sheet_by_name(sheet_name)
wb.remove(ws)

# create an empty sheet [sheet_name] using old index
wb.create_sheet(sheet_name, idx)
Run Code Online (Sandbox Code Playgroud)