Как мне скачать файл xlsm и прочитать каждый лист на python? - PullRequest
0 голосов
/ 20 мая 2019

Сейчас я делаю следующее.

import xlrd

resp = requests.get(url, auth=auth).content
output = open(r'temp.xlsx', 'wb')
output.write(resp)
output.close()
xl = xlrd.open_workbook(r'temp.xlsx')
sh = 1
try:
    for sheet in xl.sheets():
    xls.append(sheet.name)
except:
    xls = ['']

Он извлекает листы, но я не знаю, как прочитать файл или сохранение файла в формате .xlsx на самом деле работает для макросов. Все, что я знаю, это то, что код не работает прямо сейчас, и мне нужно иметь возможность отлавливать данные, которые генерируются в макросе. Пожалуйста помоги! Спасибо.

1 Ответ

2 голосов
/ 20 мая 2019

Я настоятельно рекомендую использовать xlwings , если вы хотите открывать, изменять и сохранять .xlsm файлы без их повреждения.Я перепробовал множество различных методов (используя другие модули, такие как openpyxl), и макросы всегда оказывались поврежденными.

import xlwings as xw
app = xw.App(visible=False) # IF YOU WANT EXCEL TO RUN IN BACKGROUND

xlwb = xw.Book('PATH\\TO\\FILE.xlsm')
xlws = {}
xlws['ws1'] = xlwb.sheets['Your Worksheet']

print(xlws['ws1'].range('B1').value)   # get value
xlws['ws1'].range('B1').value =  'New Value'   # change value

yourMacro = xlwb.macro('YourExcelMacro')
yourMacro()

xlwb.save()
xlwb.close()

Редактировать - я добавил опцию, чтобы Excel оставался невидимым по запросу пользователей

...