社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python提取「Excel文本框」内容,1000个表,10行代码!

CDA数据分析师 • 4 年前 • 448 次点击  


导读:查阅一番,只有xlwings这个库了!


作者:黄伟呢
来源:数据分析与统计学之美(ID:huang_superme)

说实话,这个需求头一次碰到,我相信对于大多数朋友来说,也是头一次碰到。“提取excel文本框中的内容”,对,你没有听错!我也不知道你碰到过没有,但是这确实是一位朋友提出的很好的问题。


说实话,Python操作excel的库很多,但是我几乎没有找到实现这个需求的api。比如说,我最常使用的openpyxl库,也没有这个功能。

最后查阅一番,只有xlwings这个库了!注意:这个库是第三方库,大家一定要提前安装,并且一定要使用最新版本!最新版本!最新版本!不然有些方法你无法使用。

# 打开cmd窗口,安装xlwings库
pip install xlwings

# 使用xlwings库之前,需要提前导入
import xlwings as xw


01 xlwings库相关知识


首先,咱们看到的的xw.App()是xlwings库中的一个函数。

xw.App(visible=False,add_book=False)

其中:

  • visible:True表示启动excel程序后显示程序窗口。如果为False,表示启动excel程序后,程序窗口在后台运行;
  • add_book:True表示启动excel程序后,新建一个空白工作簿。如果为False,表示启动excel程序后,不新建工作簿。

app.books.open(文件路径)

上述函数用于帮助我们打开工作簿,里面有一个参数,传入本地excel的路径,用于打开本地的工作簿。


02 完整代码


因为这篇文章,只是简单介绍了xlwings库的相关使用,有些属性和方法类似于openpyxl,这里我就不详细介绍了。Excel文本框中内容如下:


直接上代码:




    
import xlwings as xw

app = xw.App(visible=False,add_book=False)
wb = app.books.open('test1.xlsx')
for sheet in wb.sheets:
    for shape in sheet.shapes:
        if "TextBox" in shape.name:
            print(shape.text) # 一定要xlwings最新版本,老版本没有text方法

wb.close()
app.quit()

结果如下:


当然,这是针对某一个表,掌握了方法,给你多个表,不就是循环读取就行吗?

1000个表,自己可以下去尝试一下哦!


推荐阅读

 

CDA课程咨询

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/112230
 
448 次点击