как получить доступ к файлу Excel, используя python - PullRequest
0 голосов
/ 29 марта 2020

Я хочу открыть файлы Excel, взять диапазон и скопировать его в файл, новый диапазон находится на рассмотрении. Ниже код в python, но для каждого файла я получаю диалоговое окно, в котором я должен предоставить доступ к файлу. Что мне делать, чтобы этого избежать?

Я дал разрешение на диск для приложения (anaconda, python, Excel, XlWings), это не помогает.

import os
import xlwings as xw
import pandas as pd

def main():
    source = ['/Users/username/Documents/work/out/out']
    target_wb = xw.Book('/Volumes/Transend_Mac/Coding/Py/        Скрипты/Work_UZ/Target/Target.xlsx')
    target_sh = target_wb.sheets[0]
    iRow = 1
    for root, dirs, files in os.walk(source[0]): # Список всех файлов и папок в директории folder
    for file in files:
        if (os.path.splitext(file)[1]=='.xlsx' or os.path.splitext(file)[1]=='.xls'): 
            source_wb = xw.Book(root+'/'+file,read_only=True,ignore_read_only_recommended=True)
            source_sh = source_wb.sheets.active
            sheet_name=source_sh.name
            source_wb.close()
            pdd=pd.read_excel(root+'/'+file, sheet_name)

            #вычсляем кол-во строк в таблице
            lenPdd = len(pdd.index)+1

            #получаем id заявки
            sRoot=str(root)
            sIdPi=sRoot[sRoot.rfind('/')+1:]

            #создаем столбец с номером id заявки
            list_IdPi = [sIdPi for i in range(0,lenPdd-1)]
            pdd['Pi_id']=list_IdPi
            #pdd1=pdd.append(list_IdPi)
            print('A'+str(iRow))
            target_sh.range('A'+str(iRow)).options(index = False).value = pdd
            iRow=iRow+lenPdd

        else:     
            print (root+'/'+file)

    target_wb.save()
    target_wb.close()

if __name__ == '__main__':
   main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...