背景
有很多朋友对Python处理excel很感兴趣,虽然我不是这方面的专家,如果用C# openxl 是分分钟搞定的事情,再次点用Npoi也行,Python则完全陌生。
目标
既然以学习为目标去完成这件事,那么就不必太复杂(复杂我也做不来),就假设我们是在做销售系统吧。如果不专业请轻喷。
一份Excel的产品单,一份客户单,一份订单,字段简单点。
从头开始生成
一,工具
既然使用Python,当然要介绍一下工具库:
主要有openpyxl、xlwt、xlrd、Pandas(这是真的可以)、xlsxwriter
先来分析对比一波
1、Openpyxl
优势:快速、高效地读写Excel,可控制大部分Excel元素,并且写入时可以贴入公式
劣势:对初学者非常不友好,属性超级多,并且按xml格式控制;再来样式只能定义一次,修改样式就得先复制一份再重新构造,工作量几何级上升
2、xlsxwriter
专门用于写数据的方法
优势:快速,可控制大部分样式,公式只能以字符串处理,写数据以xy定位或单元格命名为主
劣势:没有毒没有毒没有毒,所以,千万别用同一份excel文档进行处理(我就吃了这个亏,好好几十万条记录被清洗一空),暂时不知道怎么追加到原文档后添加新sheet
3、xlrd、xlwt
可读写的excel库
优势:基本上用来读excel数据,非常精准、数据类型清晰
劣势:写明显很慢,10万条记录写了我10分钟(个人电脑,超级电脑可能会快点),而且不能操作样式?反正我没有找到对应的方法
综上初步研究,暂定xlrd 读文件,xlwt写新文档,准备好就开始
二、开始前准备
安装对应的库,怎样安装我就不在这里介绍了,可以私聊。
环境:python3.8,excel xlsx
pip install xlwt \ pip install xlrd \ pip install xlsxwriter
三、数据准备
接下来,我们需要模拟客户信息,为了方便管理处理,我们random,只制作简单的字段就行:ClientID、ClientName、Discount、Members、Industry
产品信息:ProID、ProName、Catalog、PurchasePrice、UnitPrice
这里不考虑进货存货问题,假设有勤劳的快递员不断补货
原文:https://www.cnblogs.com/simonhuang5123/p/12992057.html