Replace specific values in openpyxl

csv, openxls, python-2.7

Solution

You can do something like this:

import openpyxl
excelFile = openpyxl.load_workbook('file.xlsx')
sheet1 = excelFile.get_sheet_by_name('Sheet1')
currentRow = 1
for eachRow in sheet1.iter_rows():
    sheet1.cell(row=currentRow, column=2).value = "0"
    currentRow += 1
excelFile.save('file.xlsx')

Updates 2nd column to all zeros.

Problem

I have a excel file that looks like this: ``` 1984 1 1 1985 1 1 ``` I want to change all of the values in column 2 to 0 but I am not sure how to loop through rows. I have tried: ``` import openpyxl wb=openpyxl.load_workbook(r'C:\file.xlsx') ws=wb['Sheet1'] for row in ws: row = [x.replace('1', '0') for x in row] ``` but that must not be how you loop through rows. my desired out put is: ``` 1984 0 1 1985 0 1 ```

Original source