You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需本地下载 从URL直接导入xlsm宏文件到Python转为pandas数据帧

无需本地存储直接读取在线xlsm文件到pandas DataFrame的方法

依赖安装

首先安装需要的第三方库:

pip install pandas requests openpyxl

完整实现代码

import pandas as pd
import requests
from io import BytesIO

# 目标xlsm文件地址
file_url = "https://www.bocsar.nsw.gov.au/Documents/Datasets/RCI_offencebymonth.xlsm"

# 发起网络请求获取文件二进制内容
response = requests.get(file_url)
# 校验请求是否成功,遇到网络错误会直接抛出异常
response.raise_for_status()

# 将二进制内容转为内存中的类文件对象,无需写入本地磁盘
with BytesIO(response.content) as memory_file:
    # 读取xlsm文件,必须指定engine为openpyxl以支持带宏的Excel格式
    # 可通过sheet_name参数指定要读取的工作表,不传默认读取第一个工作表
    df = pd.read_excel(memory_file, engine="openpyxl")

# 测试输出前5行数据
print(df.head())

常见调整说明

  • 读取指定工作表:在pd.read_excel方法中传入sheet_name参数,参数值可以是工作表名称(字符串格式)或工作表索引(从0开始计数的整数)
  • 自定义表头位置:如果文件表头不在第一行,传入header=N参数,N为表头所在行的索引(从0开始计数)
  • 超时设置:如果网络环境不稳定,可在requests.get中添加timeout参数,示例:requests.get(file_url, timeout=30)表示30秒未返回结果则抛出超时异常
  • 安全提示:该方法仅读取文件内的表格数据,不会执行文件内嵌的宏代码,无宏运行安全风险

内容的提问来源于stack exchange,提问作者Lin Yu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:54:04