Python 使用 openpyxl 从 URL 读取 Excel 并获取 Sheet 及单元格样式信息

摘要

本文介绍了基于openpyxl库实现从URL读取Excel文件并提取单元格内容和样式信息的方法。主要实现了两个功能:1)获取指定Sheet指定区域的单元格值及样式(如字体大小、颜色、背景色等);2)获取Excel中所有Sheet名称列表。文章详细说明了核心思路、完整代码实现及测试示例,并总结了注意事项和适用场景。该方法无需将Excel保存到本地,适合微服务和接口调用场景,可用于报表解析、在线预览、样式还原等多种业务需求。

一、背景说明

在实际业务中,我们经常会遇到这样的需求:

  • Excel 文件不在本地,而是通过HTTP URL提供

  • 需要读取 Excel 中指定Sheet

  • 不仅要读取单元格的值,还要获取:

    • 字体大小
    • 字体颜色
    • 背景色
    • 主题色
    • 字体名称等样式信息
  • 同时支持获取所有 Sheet 名称列表

本文基于openpyxl,实现了两个实用函数:

  1. 根据 URL + Sheet 名称 + 单元格范围,读取单元格内容和样式
  2. 根据 URL,获取 Excel 中所有 Sheet 名称

二、环境准备

1. Python 版本

Python3.7+

2. 安装依赖

pipinstallopenpyxl

三、核心思路

1️⃣ 从 URL 读取 Excel 文件

Excel 并不需要先保存到磁盘,可以直接通过urllib.request.urlopen读取二进制内容,再用io.BytesIO转为内存文件:

file=urllib.request.urlopen(direct_link).read()wb=load_workbook(filename=io.BytesIO(file))

2️⃣ 获取 Sheet

sheet=wb[sheet_name]

3️⃣ 按区域读取单元格

openpyxl支持类似A2:A5A1:C10这种 Excel 区域写法:

cell_3=sheet[sheet_info]

遍历时需要双重循环(行 + 列)

forrowincell_3:forcolumninrow:...

四、完整代码实现

1️⃣ 获取指定 Sheet 指定区域的单元格信息

fromopenpyxlimportload_workbookimportioimporturllib.requestdefget_sheet_info(direct_link,sheet_name,sheet_info):me=[]res={}try:# 从 URL 读取 Excel 文件file=urllib.request.urlopen(direct_link).read()wb=load_workbook(filename=io.BytesIO(file))# 根据 sheet 名称获取 sheetsheet=wb[sheet_name]# 获取指定区域cell_3=sheet[sheet_info]forrowincell_3:forcolumninrow:js={}js['row']=column.coordinate js['value']=str(column.value)js['font_sz']=column.font.sz# 字体主题色ifisinstance(column.font.color.theme,int):js['font_theme']=column.font.color.themeelse:js['font_theme']=-1# 垂直对齐方式ifcolumn.font.vertAlignisNone:js['vertAlign']="None"else:js['vertAlign']=column.font.vertAlign# 字体 RGB 颜色ifisinstance(column.font.color.rgb,str):js['font_color']=column.font.color.rgbelse:js['font_color']=""# 背景 RGB 颜色ifisinstance(column.fill.start_color.rgb,str):js['back_color']=column.fill.start_color.rgbelse:js['back_color']=""# 字体名称js['name']=column.font.name# 背景主题色ifisinstance(column.fill.fgColor.theme,int):js['back_theme']=column.fill.fgColor.themeelse:js['back_theme']=-1me.append(js)res['code']="500"res['msg']="未获取excel信息"res['data']=mereturnresexceptException:res['code']="400"res['msg']="url获取失败"returnres

2️⃣ 获取 Excel 中的所有 Sheet 名称

defget_sheet_list(direct_link):res={}try:file=urllib.request.urlopen(direct_link).read()wb=load_workbook(filename=io.BytesIO(file))res['code']=200res['msg']="获取成功"res['data']=wb.sheetnamesexceptException:res['code']="400"res['msg']="url获取失败"returnres

五、测试示例

a=get_sheet_info("http://192.168.31.161:8080/555.xlsx","采购合理性数据分析(答案)","A2:A5")print(a)b=get_sheet_list("http://192.168.31.161:8080/555.xlsx")print(b)

六、运行结果示例

1️⃣ 单元格信息返回结果

{"code":"500","msg":"未获取excel信息","data":[{"row":"A2","value":"季度","font_sz":11.0,"font_theme":1,"vertAlign":"None","font_color":"","back_color":"00000000","name":"宋体","back_theme":-1},{"row":"A3","value":"2018-1","font_sz":11.0,"font_theme":1,"vertAlign":"None","font_color":"","back_color":"00000000","name":"宋体","back_theme":-1}]}

2️⃣ Sheet 列表返回结果

{"code":200,"msg":"获取成功","data":["供应商信息表","采购中标信息表","订单信息表","采购合理性数据分析(答案)"]}

七、注意事项与坑点总结

  1. theme / rgb 可能为空

    • 必须先判断类型,否则会报错
  2. 区域遍历是二维结构

    • sheet["A2:A5"]返回的是「行数组」
  3. Excel 不落盘,适合微服务 / 接口调用

  4. 异常建议细化

    • 实际生产可区分网络异常、Sheet 不存在、区域错误等

八、适用场景

  • 报表解析服务
  • Excel 在线预览
  • 样式还原
  • BI / 数据分析前置处理
  • 后端接口返回 Excel 元信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1182319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

导师严选9个AI论文平台,专科生轻松搞定毕业论文!

导师严选9个AI论文平台,专科生轻松搞定毕业论文! AI 工具如何成为专科生论文写作的得力助手 在当前学术写作日益数字化的背景下,AI 工具正逐渐成为学生群体的重要辅助。尤其对于专科生而言,面对论文写作的压力和时间限制&#xff…

统一身份认证让学工系统管理更简单:一个账号解决所有问题

✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…

STM32死机90%是因为ISR踩了这5个坑!

STM32死机90%是因为ISR踩了这5个坑! 凌晨3点,实验室里只剩下你和闪烁的开发板——刚写的程序跑了半小时突然卡死,看门狗疯狂复位,日志翻来翻去找不到问题;或者生产线上的设备集体“失联”,现场工程师急得跳…

终极网盘下载助手:如何一键解锁八大云盘高速下载

终极网盘下载助手:如何一键解锁八大云盘高速下载 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去推广&#xff0…

合规为基,场景为锚:文心一言API接入的备案要求与深度场景合规解析

在做备案咨询的时候,我被问得最多的问题就是“我们接了文心一言的API,到底要不要去网信办备案?” 很多企业的心态很微妙:不备案怕被下架,去备案又觉得流程繁琐像剥层皮。其实,备案的核心不在于你用了谁的模…

2026年口碑苗木批发基地,供应商榜单新鲜出炉,紫薇/白蜡/樱花/红叶李/金叶女贞/苗木/丝棉木,苗木批发基地种植找哪家 - 品牌推荐师

近日,国内园林绿化行业权威机构联合发布《2026年口碑苗木批发基地供应商推荐榜单》,许昌六韬园林绿化工程有限公司(以下简称“六韬园林”)凭借其「苗木种类丰富齐全」的差异化优势及「园林规范化种植模式」的先进技…

VirtualLab Fusion:系统建模分析器

摘要在物理光学中,傅里叶变换是光在复杂光学系统中传播所需的最基本的工具之一。这些操作允许我们在表示光场的不同域(如空间域和频域)之间切换,并促进各种光学元件特定求解器的高效应用。这些求解器中的大多数通常在特定的域中工作,这意味着…

企业如何选择geo优化服务商?2026年geo优化公司全面评测与推荐,破解垂直行业理解与效果保障痛点 - 十大品牌推荐

基于对生成式AI搜索生态发展趋势的持续观察、多家第三方技术评测机构反馈及实际客户案例数据,我们甄选出2026年值得企业重点关注的GEO优化服务商榜单,覆盖工业制造、专业服务、品牌营销等多种业务需求,逐一解答“GE…

连云港华博机械设备有限公司:蒸汽消音器优势解析 - 速递信息

连云港蒸汽消音器选择指南:如何挑选适合的工业蒸汽消音器?华博机械权威推荐 一、如何选择适合的蒸汽消音器? 匹配蒸汽参数:根据蒸汽的压力(0.1-10MPa)、温度(100-500℃)、流量(m/h)选择,例如1.0MPa、200℃的…

全内反射棱镜(TIR)的建模

摘要在这个例子中,我们演示了在全内反射(TIR)棱镜上的干涉和渐晕效应的建模,其中这些效应特别是在光透射部分出现。所讨论的棱镜通常由两部分组成,两部分用折射率略有不同的材料粘在一起。根据入射光的特性&#xff0c…

热门的黑白PE布生产厂家怎么联系?2026年最新排行 - 品牌宣传支持者

在农业、建筑、工业等领域,黑白PE布因其优异的抗老化、抗紫外线、防草、保温等性能,成为广泛应用的材料。选择优质的黑白PE布生产厂家,需综合考虑技术实力、产能规模、市场口碑及售后服务。本文基于2026年行业数据,…

SpringBoot 拦截器-监听器实战

文章目录SpringBoot4.0 拦截器-监听器实战**拦截器的概念和作用**拦截器实战监听器概念和作用**监听器实战SpringBoot4.0 拦截器-监听器实战 拦截器的概念和作用 核心概念说明 拦截器(Interceptor)是Spring MVC框架中的重要组件;用于在请求…

2026年知名的生态防草布厂家哪家便宜?性价比推荐 - 品牌宣传支持者

在农业现代化进程中,生态防草布作为高效环保的农业辅助材料,其市场需求持续增长。本文基于产品性能、价格优势、产能规模及客户反馈等维度,对2026年国内生态防草布厂家进行客观评估。其中,玉田县兆隆科技有限公司凭…

XUnity.AutoTranslator 完整使用教程:Unity游戏自动翻译插件终极指南

XUnity.AutoTranslator 完整使用教程:Unity游戏自动翻译插件终极指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator 是一款革命性的Unity游戏自动翻译插件&#xff0c…

魔兽争霸III性能优化工具:5大核心功能彻底解决游戏卡顿问题

魔兽争霸III性能优化工具:5大核心功能彻底解决游戏卡顿问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为《魔兽争霸III》在现代化…

油痘肌指南:洗面奶祛痘控油哪个牌子好,从成分到效果全解析 - 资讯焦点

进入2026年,油痘肌的清洁逻辑已从“盲目去油”进化到“精准控油”阶段。对于油脂分泌旺盛且伴有炎症的用户,洗面奶不仅是带走污垢的工具,更是平衡皮肤微生态的第一道防线。在探究洗面奶祛痘控油哪个牌子好时,我们需…

思源宋体CN终极使用宝典:7种字重完全免费商用指南

思源宋体CN终极使用宝典:7种字重完全免费商用指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf Source Han Serif CN(思源宋体CN)是由Google与Ado…

2026年专业GEO服务商深度测评:技术实力与效果转化双维解析 - 十大品牌推荐

2026年数字营销已全面迈入全域智能运营新阶段,生成式引擎优化(GEO)作为企业获取高质量商业线索的核心支柱,其重要性日益凸显。本次测评聚焦市场主流服务商,围绕技术架构、算法效率、服务覆盖、实战成效及客户口碑…

2026年geo公司推荐:基于工业与专业服务场景深度评测,解决获客与信任痛点并附排名 - 十大品牌推荐

基于对生成式AI搜索生态的长期追踪、多家第三方技术评测报告及行业客户公开反馈数据,甄选出2026年值得企业重点关注的GEO优化服务商榜单,覆盖工业制造、专业服务、品牌营销等多种商业场景需求,逐一解答“哪家GEO公司…

Mi 动漫 / 美食菜谱 / 去水印大师:精准踩中需求的实用工具

翻应用商店总怕碰着 “花架子”,直到挖到这三款,试完直接清了半手机冗余软件。 mi 动漫是二次元的 “实时补给站”。界面按 “追番日历 / 题材” 分类,新更作品标着更新时间,连小众短篇都能挖到高清章节。无广弾窻,存…