Чтение значения ячейки в Excel и запись в другой существующий файл Excel с python - PullRequest
0 голосов
/ 07 января 2020

У меня есть куча файлов xls в данной папке. Я хочу открыть их один за другим, получить заданное значение ячейки и записать в другой существующий (наполовину заполненный) файл Excel (в указанное место). Вот мой код. Это возвращает ошибку для строки, которая определяет место, куда я хочу записать данные. Там написано: AttributeError: у объекта «Рабочий лист» нет атрибута «диапазон». Не могли бы вы мне помочь?

for file in glob.glob('N:\*.xls'):
    fajlneve = str(file)
    fajlneve = fajlneve.decode('latin-1')
    book = xlrd.open_workbook(file, formatting_info=True, encoding_override="utf-8")
    sheets = book.sheet_names()
    for index, sh in enumerate(sheets):
        sheet = book.sheet_by_index(index)
        rows, cols = sheet.nrows, sheet.ncols
        for row in range(rows):
            for col in range(cols):
                # print "row, col is:", row+1, col+1,
                thecell = sheet.cell(row, col)
                ertek = thecell.value
                xfx = sheet.cell_xf_index(row, col)
                xf = book.xf_list[xfx]
                bgx = xf.background.pattern_colour_index
                pattern_colour = book.colour_map[bgx]
                if row == 19 and col == 11 and index == 1:
                    utkategoria = ertek
                    print utkategoria
                    wb = load_workbook(
                        "N:\map\new.xlsx")
                    sheets = wb.sheetnames
                    Sheet1 = wb[sheets[0]]
                    print Sheet1
                    Sheet1.range(2, 4).value = utkategoria  # This will change the cell(2,4) to 4
                    wb.save("N:\map\new_v2.xlsx")

1 Ответ

0 голосов
/ 07 января 2020

dir (Sheet1) не показывает диапазон в качестве опции. Чтобы изменить значение ячейки (2,4), используйте

Sheet1.cell(row=2,column=4).value = utkategoria 
...