Извлечение непрерывных значений ячеек из нескольких файлов Excel с помощью Python

Цель моей задачи — сначала извлечь значения из непрерывных ячеек одного файла Excel, затем тот же метод извлечения будет применен к оставшимся файлам Excel в той же папке, пока цикл не закончится. Например, я хочу извлечь значения из строки "A283:A9000" в файле Excel 1. После завершения извлечения из файла Excel 1 будет извлечено значение из строки "A283:A9000" в файле Excel 2, затем извлечение из тех же строк "A283:A9000" будет продолжено в файле Excel 3, файле Excel 4, файлах Excel 5 и так далее.

Я узнал, как извлекать значения из нескольких файлов Excel, из https://www.youtube.com/watch?v=M7YkQpcB4fg code работает хорошо, когда извлекаются значения из ненепрерывных ячеек. Однако, когда я пытаюсь использовать code для извлечения значения из непрерывных ячеек ('A283:A9000') того же листа, code дает сбой.

Я знаю, что проблема возникает, когда я пытаюсь использовать code для извлечения значений из непрерывных ячеек того же листа, но я не уверен, как исправить code на пользовательский в моем случае. Я думаю, что проблема находится в строке (cells = ['C11', 'C15', 'D15', 'C16', 'A283:A9000']).

Может ли кто-нибудь мне помочь?

Ура

Вот code, который я попробовал.

Вот сообщение об ошибке:

Трассировка (самый последний вызов последний):

Файл C:\Conda5\lib\site-packages\spyder_kernels\py3compat.py:356 в compat_exec exec(code, globals, locals)

Файл c:\users\kxz237.spyder-py3\temp.py:29 values ​​= [workbook.active[cell].value for cell in cells]

Файл c:\users\kxz237.spyder-py3\temp.py:29 в <listcomp> values ​​= [workbook.active[cell].value for cell in cells]

AttributeError: объект 'tuple' не имеет атрибута 'value'

import os
import openpyxl 

folder = r'C:\PhD study\GIS\Wind_Downscale\test_one'
output_file = 'C:\PhD study\GIS\Wind_Downscale\Wind_data_forecast_time.xlsx'

output_wb = openpyxl.Workbook()
output_sheet = output_wb.active
output_sheet.title = 'Wind Data for Forecast Time'

cells = ['C11', 'C15', 'D15', 'C16', 'A283:A9000']

for filename in os.listdir(folder):
    if filename.endswith('.xlsx'):
        
        file = os.path.join(folder, filename)
        
        workbook = openpyxl.load_workbook(file)
       
   
        values = [workbook.active[cell].value for cell in cells]

        
        output_sheet.append(values)
        
output_wb.save(output_file)
Феликс
Вопрос задан18 января 2024 г.

1 Ответ

Ваш ответ

Загрузить файл.