学习了10多天的Python基础知识,是时候来点硬货了。看过《第1天 | 12天搞定Python,告诉你有什么用?》的人都知道,Python的应用领域非常广泛。只是我在企业里混的时间长了,只能说是企业里常用的。在企业中,我有时会使用Python进行数据爬取和分析;有时我用它来快速开发DjangoWeb系统;有时我会用Python来进行excel、word、ppt或pdf相关的操作高级处理。关于Python在数据分析和DjangoWeb中的应用,我会找一个专门的介绍。这里先说说Python在办公领域的应用。12.1Excel操作参加过工作和没有参加过工作的同学应该都知道,日常生活或工作中经常会用到excel。工作中,常用于记录考勤信息、报价单等;在生活中,它用于安排学习计划和记录家庭开支。正因为如此,Python对Excel的支持非常大,大到库多到不行,大到程序员不知道该选哪个。不用着急,我整理了已经用Python操作excel的相关库。1.库比较xlrd库只支持只读,xlwt增加只写,xlutils增加修改。这就是传说中的补丁开发模式。想了想就想用。另外xlwt和xlutils只支持.xls文件操作会更枯燥,淘汰。xlsxwriter只能支持写操作,不用多说,直接淘汰。openpyxl可以读写.xlsx,可惜不支持.xls文件,所以不能满足“老古董”文件的处理,将其淘汰。pandas可以同时支持.xls和.xlsx的读写操作,可惜不支持修改功能,被淘汰了。经过一步步筛选,只剩下xlwings和win32com了。一开始以为win32com只能在Windows32系统上使用。查看后发现Python中对应的库名是pypiwin32,而32并不代表32位,它也支持64位系统。如果非要拿win32com和xlwings做比较的话,win32com的性能比xlwings要好,但是差别不是很大,而且win32com的文档比xlwings更难看懂。所以在不考虑超级大数据的情况下,我们会选择xlwings。2、xlwings应用打开【终端】窗口,输入pipinstallxlwings下载开发包。安装成功后,就可以使用它来操作excel了。(1)创建一个excel文件,创建一个工作簿,创建一个页面,在单元格中一个一个写入数据,或者一次写入多个数据。importxlwingsasxwapp=xw.App(visible=True,add_book=False)#新建工作簿wb=app.books.add()#Pagesheet1sht=wb.sheets["sheet1"]#单元格内容sht.range("A1").value="产品名称"sht.range("B1").value="编号"sht.range("C1").value="价格"sht.range("D1").value="规格"sht.range("E1").value="生产日期"sht.range("A2").value="No.1"sht.range("B2").value="101010"sht.range("C2").value="¥666.66"#同时输入多个(D2~E2),linesht["D2:E2"].value=["12*26","2020-10-20"]#在当前目录下输入sht["A3"].value=["努比2号","101011","9.9","66*32","2020-10-20"]#生成文件wb.save("Quotation.xlsx")wb.close()app.quit()输出结果(Quotation.xlsx)(2)编辑excel数据修改单元格数据,删除指定单元格。获取总行数和列数,并提供删除行数和列数的方法。通过这些核心API,可以对整个sheet进行操作。importxlwingsasxwapp=xw.App(visible=True,add_book=False)app.screen_updating=Falseapp.display_alerts=False#打开工作簿wb=app.books.open("Quote.xlsx")#Pagesheet1sht=wb.sheets["sheet1"]#获取总行数和列数"""rows=sht.used_range.last_cell.rowcols=sht.used_range.last_cell.column"""#修改单元格E2内容dsht["E2"].value=["2020-10-19"]#删除行sht["2:2"].delete()#删除列sht["D:D"].delete()#保存当前文件wb.save()wb.close()app.quit()输出结果(Quotation.xlsx)(3)读取excel数据,数据可以按单元格读取,也可以按行读取。importxlwingsasxwapp=xw.App(visible=True,add_book=False)app.display_alerts=Trueapp.screen_updating=True#打开文件wb=app.books.open("quote.xlsx")sht=wb.sheets["sheet1"]#读取单个a=sht.range("A1").valueprint(a)#读取多个并将它们存储在列表中r=sht.range("A1:A2").valueprint(r)wb.save()wb.close()app.quit()输出结果productname['productname','NubiNo.2']好了,老陈讲完了Python在excel应用中的内容,如果你觉得对你有帮助,希望老铁能够转发点赞,让更多人看到这篇文章。您的转发和点赞,是对老陈继续创作和分享的最大鼓励。做了10年技术总监的老家伙,分享多年的编程经验。想学习编程的朋友可以关注今日头条:老陈讲编程。我会分享Python、前端(小程序)和App的编程知识。跟着我,是的。
