python2读取excel中文处理_Python处理Excel数据
前段时间做了个小项目,帮个海洋系的教授做了个数据处理的软件。基本的功能很简单,就是对Excel里面的一些数据进行过滤,统计,对多个表的内容进行合并等。之前没有处理Excel数据的经验,甚至于自己都很少用到Excel。记得《Python核心编程》的最后一章里有讲到用Win32 COM操作office, 看了一下讲的不是很清楚。google了一下找到不少能处理excel数据的模块。对比了一下最终选定了openpyxl,openpyxl专门用于处理Excel2007及以上版本产生的xlsx文件。不幸的是我所得到的数据中xls和xlsx都有,不过转换并不是什么难事,就暂时吧这个问题忽略了。
模块的安装过程非常简单,官网上有简单的使用说明和API文档,整体来说使用非常容易,也基本能满足我的需求。对于Excel文件,我所需要的只是从中将相应位置的数据读取出来,以及把数据写入到对应的位置中去。而其间数据的处理,通过python可以很容易地完成。
1. Excel数据的类型及组织方式
openpyxl中定义了多种数据格式,我只涉及到了其中最重要的三种:
NULL: 空值,对应于python中的None,表示这个cell里面没有数据。
numberic: 数字型,统一按照浮点数来进行处理。对应于python中的float。
string: 字符串型,对应于python中的unicode。
每一个Excel数据文件从上至下分为三个层级的对象:
workbook: 每一个Excel文件就是一个workbook。
sheet: 每一个workbook中可以包含多个sheet,具体就对应Excel中我们在左下脚所看到的“sheet1”,“sheet2”等。
cell: 每一个sheet就是我们通常所看到的一个表格,可以含有m行,n列,每个确定的行号,列号所对应的一个格子就是一个cell。
2. 从Excel中读取数据
从一个既有的xlsx文件中读取数据,按照Excel文件的三个层级,分别做以下三个步骤
1. 打开workbook:
from openpyxl import load_workbook
wb = load_workbook('file_name.xlsx')
2. 打开所需的sheet:
我们可以这样打开workbook中的第一个sheet:
ws = wb.get_active_sheet()
变量_active_sheet_index用来确定获取哪一个sheet,而默认情况下它被置为0。
也可以通过sheet的名称来获取sheet:
ws = wb.get_sheet_by_name("sheet_name")
openpyxl似乎没有提供按索引来读取sheet,不过我们总是能很容易地通过sheet_name来实现:
sheet_names = wb.get_sheet_names()
ws = wb.get_sheet_by_name(sheet_names[index])
3. 获取对应cell的值:
openpyxl提供可两种方式来读取cell,一是按照Excel的习惯用字母来代表列号,例如:
c = ws.cell('A4').value
也可以按照行号列号来读取:
d = ws.cell(row = 3, column = 0)
3. 将数据写入Excel
同读取类似,写入一个Excel文件,要经历一下四个步骤:
1. 新建workbook
直接新建一个workbook对象即可:
wb = Workbook()
2. 新建sheet
默认情况下,新创建的sheet是排在最后的,若想要创建一个排在最前的sheet,可以传入参数0:
ws1 = wb.create_sheet() # insert at the end
ws2 = wb.create_sheet(0) # insert at the first position
3. 写入数据
直接将要写入的数据赋值给相应的cell即可,若仅仅是修改一个表。可以跳过前两个步骤,不过要注意不要覆盖掉其它数据:
ws.cell('B5') = value1
ws.cell(row = 3, column = 7) = value2
4. 保存数据
最后写入将数据写入即可,注意若保存路径下有同名的文件的话,之前的文件会被覆盖:
wb.save('file_name.xlsx')
python2读取excel中文处理_Python处理Excel数据相关推荐
- php读取excel中文匹配_PHP根据Excel表头指定的字段,自动匹配数据
背景 在使用PHP解析Excel数据的时候,经常期望能把Excel中的数据自动和数据库字段建立上映射关系: 比如下图一 - Excel文件,图二 - 数据库字段 如果读取Excel后直接返回下面的数据 ...
- python excel详解_python操作excel详解
前提: python操作excel需要使用的模块有xlrd.xlwt.xlutils.对excel进行读.写.更新操作.操作excel时需要先导入这些模块,demo如下: excel-读操作知识点: ...
- excel sheet限制_Python 处理Excel内的数据(案例介绍*3)
点击上方"蓝字"关注我们了解更多精彩案例一介绍 现在有一批电商产品跟当日销量的数据,如下,总共有上万笔的数据,现在需要统计每个品牌当日的销售量,比如美宝莲今天总共卖出了多少的商品, ...
- python做excel表格代码_Python读写Excel表格
最近在做一些数据处理和计算的工作,因为数据是以.CSV格式保存的,因此刚开始直接用Excel来处理. 但是做着做着发现重复的劳动,其实并没有多大的意义,于是就想着写个小工具帮着处理. 以前正好在一本书 ...
- python 拆分excel工作表_Python将一个Excel拆分为多个Excel
本文实例为大家分享了Python将一个Excel拆分为多个Excel的具体代码,供大家参考,具体内容如下 原始文档如下图所示 将销售部门一.二.三科分别存为三个Excel 代码如下 # -*- cod ...
- python根据excel生成报表_python生成Excel图表(通过xlsxwriter)
前面介绍了pandas的简单用法,pandas的数据可以通过matlab第三方包将数据生成报表,但是我想将报表生成在Excel中,这时候就可以借助xlsxwriter第三方包来生成图标 缺点:xlsx ...
- python 做excel可视化报告_Python操作Excel制作可视化数据图,实现自动化办公
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于IT入门 安装 操作一个简单的Excel文档 操作注释及代码: 操作完成后,数 ...
- python做excel表格柱状图_Python openpyxl Excel绘制柱形图
这是一份openpyxl的使用指南. 柱形图 数据会被绘制成垂直,水平或者是层叠效果的柱形图. 注意: 接下来的设置会影响到不同类型的图表. 设置类别可以控制柱形图是垂直或是水平. 使用层叠图形时,需 ...
- python excel截图保存_python 对excel进行截图
工作中需要对excel的单元格区域进行截图,以前是调用vba进行(走了很多弯路,虽然能实现,但比较low),后来逐步发现python的win32com与vba师出同门,很多方法操作都是类似的. 可以对 ...
最新文章
- 怎样让webservice在浏览器远程浏览时像在本地浏览一样有参数输入框
- webstorm / intellij IDEA / phpstorm license server 激活链接 (过期留言更新)
- TP5 实现链接分享/帮助,限制每个用户每天一次帮忙
- 远程仓库都不知道,那你学Git干嘛?
- Redis从入门到精通|干货篇
- 计算机台式右上角三个灯作用,键盘右上角的三个灯是什么?有什么用
- USB 协议分析之 HID 设备(转)
- 软件项目开发与管理(单代号网络图参考例题)
- 单词风暴2009免费分享版
- word向下箭头符替换和打印,去掉多余换行
- 海康威视摄像头的多通道rtsp地址格式
- 重试利器Guava Retrying
- DirectAdmin教程-初级
- 寒假每日一题——贝茜放慢脚步
- 一个小的java作业,第一次上传CSDN,原创的
- 解决win10家庭高级版切换到Administrator用户后无法切换回原账户问题过程记录
- 《卓有成效的管理者》——学习心得(五)
- C++基础入门(从了解C++到Hello World)
- 建模simulink - xpc自定义模块设置
- 【小程序】微信小程序如何获取用户微信openID?(已解决,完整代码实例)
热门文章
- usb口拒绝访问_u盘无法打开磁盘无法访问拒绝访问该怎么解决?
- 三星s9 android,总算是对市场妥协了!三星S9+售价直掉三千,现售价够值了
- 华为手机像素密度排行_虽然华为Mate20 X的像素密度更低,但它清晰度不如Mate20吗?...
- oracle数据库空间预警,数据库系统预警机制
- 【QT开发笔记-基础篇】| 第五章 绘图QPainter | 5.13 抗锯齿
- 卖保险的都搞起返佣推广了!
- PageHelper关联查询 统计总数问题
- 神州数码牵手国内最大远程接入平台提供商
- deepin 输入法频繁重启,无法正常输入汉字解决方法
- 阿里云云数据库RDS的基本使用(二十三)