学了10多天Python基础知识了,是时候来点硬货了,看过《第1天 | 12天搞定Python,通知你有什么用?》的老铁都晓得,Python可用的畛域挺多的。只是我长期待在企业,所以只能说说,它在企业中罕用范畴。
在企业中,我,有时会用Python进行数据爬取和剖析;有时会用来疾速开发Django Web零碎;有时会为了提供工作效率,我会用Python对excel、word、ppt或pdf相干操作,进行高级解决。
无关Python在数据分析和Django Web方面的利用,我找专题介绍。在这,我先讲Python在办公畛域的利用。
12.1 excel操作
上过班或没上过班的同学都应该晓得,excel在日常或工作中的利用是很频繁的。在工作中,罕用来记录考勤信息和制作报价单等;在生活中,用来安顿学习打算和记录家庭开销等。
正因为此,Python对Excel提供的反对,是大大大的,大到库有好多,大到程序员都不知抉择哪一个才好了。别急,我把曾经把Python操作excel的相干库,给你整理出来了。
1. 库的比拟
xlrd库只反对只读,xlwt补充了只写,xlutils补充了批改,这就是传说中的打补丁开发模式,想想不就想用,加上xlwt、xlutils只反对.xls文件的操作,那就更加没趣了,淘汰。
xlsxwriter只能反对写的操作,不必我多说了吧,间接淘汰。
openpyxl倒能够对.xlsx进行读写操作,惋惜不反对.xls文件,这样就无奈满足对”老古董“文件的解决,淘汰。pandas倒是能够同时反对.xls和.xlsx的读写操作,惋惜不反对批改性能,淘汰。
通过一步一步的筛选,最初只剩下xlwings和win32com了。一开始,我认为win32com只能用在Windows 32零碎上,经核查,发现其在Python对应的库名称是pypiwin32,而32也不是32位的意思,它也反对64位零碎的。
如果非要比拟win32com和xlwings的话,那就是win32com的性能要比xlwings好一些,但差异不是特地大,win32com的文档比xlwings难懂一些。所以在不思考超级大数据的状况,咱们会抉择xlwings。
2. xlwings利用
关上【终端】窗口,输出pip install xlwings下载开发包。在装置胜利之后,就能够用它对excel进行操作了。
(1) 创立excel文件
创立工作簿,创立页,在单元格一一写入数据,也可一次性写入多项数据。
import xlwings as xw app = xw.App(visible=True, add_book=False) # 新建工作簿 wb = app.books.add() # 页sheet1 sht = 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 = "牛逼1号" sht.range("B2").value = "101010" sht.range("C2").value = "¥666.66" # 同时输出多个(D2~E2),行 sht["D2:E2"].value = ["12*26", "2020-10-20"] # 按行输出 sht["A3"].value = ["牛逼2号", "101011", "9.9", "66*32", "2020-10-20"] # 在当前目录下生成文件 wb.save("报价单.xlsx") wb.close() app.quit()
输入后果(报价单.xlsx)
(2) 编辑excel数据
批改单元格数据,删除指定单元格。获取行和列总数,提供删除行和列的办法,通过这些外围的API,你就能够对整个sheet进行操作了。
import xlwings as xw app = xw.App(visible=True, add_book=False) app.screen_updating = False app.display_alerts = False # 关上工作簿 wb = app.books.open("报价单.xlsx") # 页sheet1 sht = wb.sheets["sheet1"] # 获取总行数和列数 """rows = sht.used_range.last_cell.row cols = sht.used_range.last_cell.column""" # 批改E2单元格内容d sht["E2"].value = ["2020-10-19"] # 删除行 sht["2:2"].delete() # 删除列 sht["D:D"].delete() # 保留以后文件 wb.save() wb.close() app.quit()
输入后果(报价单.xlsx)
(3) 读取excel数据
可按单元格或按行进行读取数据。
import xlwings as xw app = xw.App(visible=True, add_book=False) app.display_alerts = True app.screen_updating = True # 关上文件 wb = app.books.open("报价单.xlsx") sht = wb.sheets["sheet1"] # 读取单个 a = sht.range("A1").value print(a) # 读取多个并存入列表 r = sht.range("A1:A2").value print(r) wb.save() wb.close() app.quit()
输入后果
产品名称 ['产品名称', '牛逼2号']
好了,无关Python在excel利用方面的内容,老陈讲完了,如果感觉对你有所帮忙,心愿老铁能转发点赞,让更多的人看到这篇文章。你的转发和点赞,就是对老陈持续创作和分享最大的激励。
一个当了10年技术总监的老家伙,分享多年的编程教训。想学编程的敌人,可关注今日头条:老陈述编程。我将分享Python,前端(小程序)和App方面的编程常识。关注我,没错的。