12: xlrd 处理Excel文件
1.1 xlrd处理.xlsx 文件
1、xlrd常用方法
#!/usr/bin/python
# coding:utf-8
# 用xlrd读取Excel文件基本用法
import sys
import xlrd
import json # 设置编码格式
reload(sys)
sys.setdefaultencoding('utf-8') # 1. 从Excel文件中读取出Book对象
data = xlrd.open_workbook('./data.xlsx') # 2. 获取sheet页对象
sheet1 = data.sheet_by_index(0) # 3. 获取sheet页的行数和列数
nrows = sheet1.nrows
ncols = sheet1.ncols # 4. 获取单元格第0行的值(是一个列表)
row_data = sheet1.row_values(0) # 5. 获取单元格第0列的值(是一个列表)
col_data = sheet1.col_values(0) # 6. 获取单元格第0行第0列数据
cell_A1 = sheet1.cell(0, 0)
xlrd常用方法
2、xlrd将 .xlsx读取成json格式
#!/usr/bin/python
# coding:utf-8
# 用xlrd读取Excel文件基本用法
import sys
import xlrd
import json reload(sys)
sys.setdefaultencoding('utf-8') # 设置编码格式
data = xlrd.open_workbook('./data.xlsx') # 从Excel文件中读取出Book对象
sheet1 = data.sheet_by_index(0)
nrows = sheet1.nrows
idx = sheet1.row_values(0) # 索引(即第一列数据:表头)
data = [] # 最终的数据列表
for i in range(1, nrows): # 从第1行开始遍历循环所有行,获取每行的数据
row_data = sheet1.row_values(i)
row_data_dict = {} # 组建每一行数据的字典
for j in range(len(row_data)): # 遍历行数据的每一项,赋值进行数据字典
item = row_data[j]
row_data_dict[idx[j]] = item
data.append(row_data_dict) print json.dumps(data, indent=4) '''
[{
"状态": "在职",
"角色(负责人、员工)": "负责人",
"手机号": 15134345678,
"汇报人": "tom",
"离职交接人": "",
"二级部门": "AI实验室",
"姓名": "闫峻",
"三级部门": "",
"工号": 406.0,
"一级部门": "基础数据平台部",
"性别": "男",
"备注": ""
},
{
"状态": "在职",
"角色(负责人、员工)": "员工",
"手机号": 15223457654,
"汇报人": "jack",
"离职交接人": "",
"二级部门": "AI实验室",
"姓名": "丁浩洋",
"三级部门": "",
"工号": 207.0,
"一级部门": "基础数据平台部",
"性别": "男",
"备注": ""
}
]
'''
xlrd将 .xlsx读取成json格式
3、自定义索引 转换 .xlsx文件为json
#!/usr/bin/python
# coding:utf-8
import sys
import xlrd
import json reload(sys)
sys.setdefaultencoding('utf-8') # 设置编码格式 def xlsx_to_json(filename, idx):
'''
:param filename: .xlsx 文件 路径
:param idx: 字典 key 值(可以为表头)
'''
data = xlrd.open_workbook(filename) # 从Excel文件中读取出Book对象
sheet1 = data.sheet_by_index(0)
nrows = sheet1.nrows
data = [] # 最终的数据列表
for i in range(1, nrows): # 从第1行开始遍历循环所有行,获取每行的数据
row_data = sheet1.row_values(i)
row_data_dict = {} # 组建每一行数据的字典
for j in range(len(row_data)): # 遍历行数据的每一项,赋值进行数据字典
item = row_data[j]
if idx[j] == 'jobid' or idx[j] == 'phone': # 电话/工号 浮点数改成整数
if isinstance(item, float):
item = int(item)
row_data_dict[idx[j]] = item
data.append(row_data_dict)
return json.dumps(data) idx = ['jobid','name','sex','level1','level2','level3','role','report_line','phone','usable','hand_people','tag']
ret = xlsx_to_json('data.xlsx', idx)
print ret
自定义索引 转换 .xlsx文件为json
11111111111111
12: xlrd 处理Excel文件的更多相关文章
- python使用xlrd操作Excel文件
一.xlrd读取Excel文件 用xlrd进行读取比较方便,流程和平常手动操作Excel一样,打开工作簿(Workbook),选择工作表(sheets),然后操作单元格(cell). 例子:要打开当前 ...
- python xlrd读取Excel文件
1 import xlrd 2 3 #打开excel文件 4 book = xlrd.open_workbook('salary.xls') 5 6 #打印每个工作表的名称 7 for sheet i ...
- python利用xlrd读取excel文件始终报错原因
1.代码按照网上百度的格式进行书写如下: 但运行后,始终报错如下: 百度了xlrd网页: 分明支持xls和xlsx两种格式的文件,但运行始终报错. 最后找到原因是因为我所读取的文件虽然是以.xls命名 ...
- Excel文件读写操作1(xls)
一.Python-Excel常用的库:xlrd(read).xlwt(write).xlutils.openpyxl 1.xlrd 读取Excel文件,支持 .xls 和 .xlsx 格式. 2.x ...
- C#操作Excel文件
.Net平台上对Excel进行操作主要有两种方式.第一种,把Excel文件看成一个数据库,通过OleDb的方式进行读取与操作:第二种,调用Excel的COM组件.两种方式各有特点. 注意一些简单的问题 ...
- 用Python对excel文件的简单操作
#-*-coding:utf8-*- import xlrd #代开excel文件读取数据 data = xlrd.open_workbook("C:\\Users\\hyl\\Deskto ...
- [Python]将Excel文件中的数据导入MySQL
Github Link 需求 现有2000+文件夹,每个文件夹下有若干excel文件,现在要将这些excel文件中的数据导入mysql. 每个excel文件的第一行是无效数据. 除了excel文件中已 ...
- 记录:python读取excel文件
由于最近老是用到python读取excel文件,所以特意记录一下python读取excel文件的大体框架. 库:xlrd(读),直接pip安装即可.想要写excel文件的话,安装xlwd库即可,也是直 ...
- 第一节:python读取excel文件
写在前面: (1)Excel中数字格式int(1),读出的是float(1.0)类型,导致传参时造成不同,强制转换时,int(str(1.0))在2.7版本又会报错ValueError: invali ...
随机推荐
- H5页面分享微信自定义分享title和img
前端开发H5 需分享到朋友圈和发给好友,想自定义分享的title和图表还有简短一句话,还需调用微信的api 首先需获取到微信的appId,timestamp,nonceStr,signature 微信 ...
- fullpage插件在移动端弹出键盘页面特殊处理
fullpage插件大家都很熟悉 jquery一款全屏上下滑动的插件. 最近做公司一个活动移动端使用fullpage插件填写input的时候遇见一个问题,手机自带的键盘弹出的时候会把页面顶出去,页面错 ...
- Sklearn的使用
初步接触要求时,从上图选自己数据所适用的方法, 首先看数据的样本是否 >50,小于则需要收集更多的数据 然后看问题适合分类.回归.聚类.降维中的哪一大类 Sklearn解决问题的一般步骤: 1. ...
- efcore从数据库快速生成实体及context
有些项目开发时先建立数据库,再用codefirst来书写entity和EntityConfiguration,比较耗费功夫. 1.在vs2017中新建个asp.net core的web项目,或者其他项 ...
- python3(socket 实现udp,tcp套接字编程)
#coding=utf-8 #客户端程序TCP 连接 import socket s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connec ...
- Code Review(转)
Code Review是一种通过复查代码提高代码质量的过程,在XP方法中占有极为重要的地位,也已经成为软件工程中一个不可缺少的环节.本文通过对Code Review的一些概念和经验的探讨,就如何进行C ...
- lua学习之循环打印九九乘法表
--第4题 输出99乘法表 function PrintMulitiplyTable() , do local res = {} local str = "" , i do res ...
- Codeforces Round #322 (Div. 2) E F
E. Kojiro and Furrari 题意说的是 在一条直线上 有n个加油站, 每加一单位体积的汽油 可以走1km 然后每个加油站只有一种类型的汽油,汽油的种类有3种 求从起点出发到达终点要求使 ...
- 大数据处理框架之Strom:redis storm 整合
storm 引入redis ,主要是使用redis缓存库暂存storm的计算结果,然后redis供其他应用调用取出数据. 新建maven工程 pom.xml <project xmlns=&qu ...
- ::before 伪元素三角
ul::before{ content: ''; width:; height:; border: 10px solid transparent; border-bottom: 10px solid ...