如何下载xlsm文件并阅读python中的每一页?

如何下载xlsm文件并阅读python中的每一页?,python,excel,python-2.7,xlrd,Python,Excel,Python 2.7,Xlrd,现在我正在做以下工作 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:

现在我正在做以下工作

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是否真的适用于宏。我只知道代码现在不工作,我需要能够捕获宏中生成的数据。请帮忙!谢谢。

如果要打开、修改和保存
.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不可见

如果您想打开、修改和保存
.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不可见

您可以使用pandas轻松完成此操作

import pandas as pd

# YOU MUST PUT sheet_name=None TO READ ALL CSV FILES IN YOUR XLSM FILE
df = pd.read_excel ('YOURFILE.xlsm' , sheet_name=None)

print (df)

你可以用熊猫轻松做到这一点

import pandas as pd

# YOU MUST PUT sheet_name=None TO READ ALL CSV FILES IN YOUR XLSM FILE
df = pd.read_excel ('YOURFILE.xlsm' , sheet_name=None)

print (df)

我不明白你想做什么。另外,你是说你在一个.xlsx文件中有宏吗?它是一个启用宏的.xlsm文件,我把它保存为一个xlsx文件,但是它会剥夺从宏中获取数据的能力。我正在下载文件。将其保存在存储内容的临时文件中,然后处理数据并将其逐页放入数据框中。一旦下载了文件,请看这一点,我对您尝试执行的操作感到困惑。另外,你是说你在一个.xlsx文件中有宏吗?它是一个启用宏的.xlsm文件,我把它保存为一个xlsx文件,但是它会剥夺从宏中获取数据的能力。我正在下载文件。将其保存在存储内容的临时文件中,然后处理数据并将其逐页放入数据框中。下载完文件后,请参见此,我需要首先通过python下载该文件。我该怎么做?你从哪里下载文件?FTP服务器?外置硬盘?等等?退房,也退房。应该很好,这不是我想要的。我想让Python来做所有的工作。我不想让文件自动打开。Python需要打开文件、使用宏并提取数据。在Python提取所有工作表名称或数据之前,我不会知道其中的工作表名称或数据。您需要以某种方式访问Excel才能运行宏。您可以创建VBS脚本并运行子流程,也可以只在
xlwings
中关闭可见性(事实上也是如此)。我在上面编辑了我的答案以包括这一点。然后在
xlwings
中运行宏并提取如上所示的数据。我需要先通过python下载文件。我该怎么做?你从哪里下载文件?FTP服务器?外置硬盘?等等?退房,也退房。应该很好,这不是我想要的。我想让Python来做所有的工作。我不想让文件自动打开。Python需要打开文件、使用宏并提取数据。在Python提取所有工作表名称或数据之前,我不会知道其中的工作表名称或数据。您需要以某种方式访问Excel才能运行宏。您可以创建VBS脚本并运行子流程,也可以只在
xlwings
中关闭可见性(事实上也是如此)。我在上面编辑了我的答案以包括这一点。然后在
xlwings
中运行宏并提取如上所示的数据