写在前面Python常见的数据文件处理有5种,今天我们来讲讲其中的Excel如何处理! Excel是大家工作当中使用频率比较高的一款办公软件了所以我们很有必要学习一下,那么Python是如何处理excel呢,下面就来讲讲~~ 正文1.两大库xlrd,xlwt 1).Python操作excel主要用到xlrd和xlwt这两个库 即xlrd是读excel,xlwt是写excel的库,名字也蛮好记得,xl是excel的缩写,rd是read,wt是write.xlrd可以解析微软的.xls and .xlsx两种各种的电子表格 2).如何安装 用pip install xlrd就可以安装xlrd模块 用pip install xlwt就可以安装xlwt模块 如果小伙伴是用Pycharm的话更简单,直接打开File/Setting/Project/Project Interpreter,然后选择左边的绿色加号安装 2.如何读一个excel文件 比如有这样一个'user_data.xlsx'表格,第一个sheet叫'data',内容如下: 1).打开表格 file_name='user_data.xlsx' excel_file=os.getcwd()+'\\'+file_name rdata=xlrd.open_workbook(excel_file) print type(rdata) >> 我们用open_workbook这个函数打开一个excel文件,并返回一个rdata对象,有同学好奇这个rdata是啥,我们type一下 发现data是:xlrd这个模块下面的book文件下面的Book类的实例对象 有点拗口,但确实是这样的,不信可以看源码 2).获取表格的基本信息
3).每个sheets名字
4).每个sheet的行列总数,比如第一个sheet
5),获取行,列的对象 获取第一行的内容
获取第二列的内容
我们可以利用列表切片访问:第二列到第5列
6).获取单元格cell的内容 xlrd对excel里面内容分成下面7种的,是枚举类型
我们来看一下,第一行第一列的单元格是个字符串 sh1=rdata.sheet_by_index(0) cell_0_0=sh1.cell(0,0) print cell_0_0 print cell_0_0.ctype print cell_0_0.value >> text:u'\u65f6\u95f4' 1 时间 #1确实对应的是文本 我们来看一下,第二行第一列的单元格:日期 cell_1_0=sh1.cell(1,0) print cell_1_0 print cell_1_0.ctype print cell_1_0.value >> xldate:42736.0 3 42736.0 #3确实对应的是日期 (有小伙伴问日期怎么变成这个数字, #因为日期被转换成了xldate对象,一会我们会转换回来,后面会详细讲) 我们来看一下,第二行第二列的单元格:数字 cell_1_1=sh1.cell(1,1) print cell_1_1 print cell_1_1.ctype >> number:16.0 2 16.0 #2确实对应的是日期 (有小伙伴问日期怎么变成这个数字,不急后面会讲) 3.如何写数据进表格 主要是用xlwt模块,现在我们要把上面的'data.xlsx'表格中人数1和人数2相加等于总数列,并写入到一个新的excel文件中去. 1).读取'data.xlsx'中sheet1的数据
2).创建一个wbook对象,生成一个新的sheet
3).在写入第一行,标题栏
4).写入时间列的数据,需要转化数据格式 上面读表格的时候,我们遗留了一个问题,就是第一列的日期 为啥打印出来,会变成奇怪的数据 其实那个是xldate对象,我们需要把sheet1里面的内容提取处理,然后转成日期数 5).计算第二列和第三列的数据,得到总分 6).把sheet1里面的第二列,第三列和总分的数据写入excel文件 7).写成文件new_data.xls
运行一下,打开新的表格new_data.xls 写在后面不知道大家看了文章会不会操作了呢? 不要着急,小编推荐大家可以加我的扣扣群学习Python,私信小编“520”即可获取群号,里面有志同道合的小伙伴,还有许多学习资料,一起来学习吧~~ |
|