Я хочу открыть файлы 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()