Openpyxl:我们发现某些内容存在问题

时间:2020-04-11 18:02:53

标签: python excel openpyxl

我收到错误消息“我们发现某些内容存在问题”,打开了我用openpyxl生成的文件。通过串联不同的xlsx文件并在其他单元格中添加其他公式来生成文件。

该问题是由我将其具有if条件的公式写入单元格引起的(第二个for循环导致excel错误消息)。

那是代码:

import openpyxl as op
import glob

# Search for all xlsx files in directory and assign them to variable allfiles
allfiles = glob.glob('*.xlsx')
print('Following files are going to be included into the inventory: ' + str(allfiles))

# Create a workbook with a sheet called 'Input'
risk_inventory = op.load_workbook('./Report/Risikoinventar.xlsx', data_only = False)
input_sheet = risk_inventory['Input']
risk_inventory.remove(input_sheet)
input_sheet = risk_inventory.create_sheet()
input_sheet.title = 'Input'
r_maxrow = input_sheet.max_row + 1

# There is more code here which is not related to the problem

for i in range (2,r_maxrow):
    if input_sheet.cell(row = i, column = 2).value == 'Top-Down':
        input_sheet.cell(row = i, column = 20).value = '=IF(ISTEXT(H{}),0,IF(H{}<=1000000,1,IF(H{}<=2000000,2,IF(H{}<=4000000,3,IF(H{}<=8000000,4,IF(H{}>8000000,5,0))))))'.format(i,i,i,i,i,i)
    elif input_sheet.cell(row = i, column = 2).value == 'Bottom-Up':
        input_sheet.cell(row = i, column = 20).value = '=IF(ISTEXT(H{}),0,IF(H{}<=1000000,1,IF(H{}<=2000000,2,IF(H{}<=4000000,3,IF(H{}<=8000000,4,IF(H{}>8000000,5,0))))))'.format(i,i,i,i,i,i)

for i in range (2,r_maxrow):
    if input_sheet.cell(row = i, column = 2).value == 'Top-Down':
        input_sheet.cell(row = i, column = 21).value = '=IF(K{}="Sehr gering",1,IF(K{}="Gering",2,IF(K{}="Mittel",3,IF(K{}="Hoc",3,IF(K{}="Sehr hoch",3,0))))))'.format(i,i,i,i,i,i)
    elif input_sheet.cell(row = i, column = 2).value == 'Bottom-Up':
        input_sheet.cell(row = i, column = 21).value = '=IF(K{}="Sehr gering",1,IF(K{}="Gering",2,IF(K{}="Mittel",3,IF(K{}="Hoc",3,IF(K{}="Sehr hoch",3,0))))))'.format(i,i,i,i,i,i)

因此,根据单元格(行= i,列= 2)中包含的信息,我想要单元格中的特定公式(行= i,列= 21)。第一个for循环工作正常,第二个for循环导致excel中的错误消息,并且公式未粘贴)

您可能已经看到我正在尝试使用Python编码一周,但从未尝试过编码……

非常感谢!

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,这是由于公式编写错误。打开文件时,单击“查看”而不是“删除”,我发现了问题所在。