如何使用python获得excel文件授权访问

q8l4jmvw  于 2023-01-08  发布在  Python
关注(0)|答案(1)|浏览(381)

我想打开excel文件,取一个范围并将其复制到文件中,新范围在prevision下。下面的代码是python,但是对于每个文件我都会收到一个对话框窗口,在这个窗口中我必须授予对文件的访问权限。我应该怎么做才能避免呢?
我允许磁盘应用程序(水蟒,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()
qlfbtfca

qlfbtfca1#

当我试图使用xlwings打开Excel文件时,我似乎也遇到了这个问题,而我已经授权我的python IDE、Excel、Anaconda和终端完全访问磁盘。由于我使用Mac OS,这里我提供了一个替代解决方案:更改Excel文件的权限设置
由于系统要求对Excel文件授权,我想可能是Excel文件没有授权给其他人直接编辑;我只是试图右键单击Excel文件(在您的情况下为Target.xlsx),转到信息,然后将“每个人”的权限更改为“读写”。
不确定我的猜测是否正确,即使我这样做了,似乎“有时”系统仍然要求我授予对Excel文件的访问权限,但至少有时没有。
希望这能有所帮助&其他面临这个问题的人可以分享你的想法。

相关问题