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文件的更多相关文章

  1. python使用xlrd操作Excel文件

    一.xlrd读取Excel文件 用xlrd进行读取比较方便,流程和平常手动操作Excel一样,打开工作簿(Workbook),选择工作表(sheets),然后操作单元格(cell). 例子:要打开当前 ...

  2. python xlrd读取Excel文件

    1 import xlrd 2 3 #打开excel文件 4 book = xlrd.open_workbook('salary.xls') 5 6 #打印每个工作表的名称 7 for sheet i ...

  3. python利用xlrd读取excel文件始终报错原因

    1.代码按照网上百度的格式进行书写如下: 但运行后,始终报错如下: 百度了xlrd网页: 分明支持xls和xlsx两种格式的文件,但运行始终报错. 最后找到原因是因为我所读取的文件虽然是以.xls命名 ...

  4. Excel文件读写操作1(xls)

    一.Python-Excel常用的库:xlrd(read).xlwt(write).xlutils.openpyxl 1.xlrd  读取Excel文件,支持 .xls 和 .xlsx 格式. 2.x ...

  5. C#操作Excel文件

    .Net平台上对Excel进行操作主要有两种方式.第一种,把Excel文件看成一个数据库,通过OleDb的方式进行读取与操作:第二种,调用Excel的COM组件.两种方式各有特点. 注意一些简单的问题 ...

  6. 用Python对excel文件的简单操作

    #-*-coding:utf8-*- import xlrd #代开excel文件读取数据 data = xlrd.open_workbook("C:\\Users\\hyl\\Deskto ...

  7. [Python]将Excel文件中的数据导入MySQL

    Github Link 需求 现有2000+文件夹,每个文件夹下有若干excel文件,现在要将这些excel文件中的数据导入mysql. 每个excel文件的第一行是无效数据. 除了excel文件中已 ...

  8. 记录:python读取excel文件

    由于最近老是用到python读取excel文件,所以特意记录一下python读取excel文件的大体框架. 库:xlrd(读),直接pip安装即可.想要写excel文件的话,安装xlwd库即可,也是直 ...

  9. 第一节:python读取excel文件

    写在前面: (1)Excel中数字格式int(1),读出的是float(1.0)类型,导致传参时造成不同,强制转换时,int(str(1.0))在2.7版本又会报错ValueError: invali ...

随机推荐

  1. 深入理解Java虚拟机2-chap3-斗之气9段

    一.GC需要完成三件事 哪些内存需要回收:找出不需要使用的对象 什么时候回收:JVM空闲/堆内存紧张 如何回收:回收垃圾的策略 二.寻找已死对象:第一件事 判断对象是否存活算法 1.引用计数算法 原理 ...

  2. cocos2dx JS 游戏切到后台再进入游戏的处理

    由于Cocos引擎中,游戏切入后台后定时器后停掉会让某个Animation动作停止. 导致当重新进入游戏时,看到的不是你想要的画面.或者定时器倒计时的时间对不上等问题. cc.game.EVENT_H ...

  3. ElementNotVisibleException: Message: element not visible

    selenium自动化测试中,经常会报异常: 可能会有各种疑问,元素可以定位到啊.为什么报以下异常? ElementNotVisibleException: Message: element not ...

  4. 字符串ASCII码排序

    在对接第三方支付渠道的时候,第三方会要求参数按照ASCII码从小到大排序. 如下是渠道方有关生成签名规则的java代码示例: //初始化0010merkey.private文件: String mer ...

  5. OBV15 案例2

    BV

  6. 第六天实验详解——dedecms通过xss漏洞写马

    第六天实验详解 **XSS跨站攻击的分类** XSS漏洞类型主要分为持久型和非持久型两种: 1. 非持久型XSS漏洞一般存在于URL参数中,需要访问黑客构造好的特定URL才能触发漏洞. 2. 持久型X ...

  7. 搭建私有仓库Harbor

    搭建Harbor企业级docker仓库   搭建Harbor企业级docker仓库 一.Harbor简介 1.Harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry ...

  8. mysql基础常用命令

    数据库 1查询 Select * From table select host,user,password from mysql.user where user='ybb' and host='%'; ...

  9. arcgis api for javascript 添加图层时设置标注,自定义符号

    <!DOCTYPE html> <html> <head> <meta charset="gb2312"> <meta nam ...

  10. JSP—简介

    BS/CS的区别? CS模式: client:客户端:存放操作界面的图片样式本地数据和缓存等 server:服务端:保存核心数据 请求响应模式:收到请求后,服务器只需要返回核心的数据 优缺点:需要安装 ...