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 ...
随机推荐
- iOS 元件组件-创建静态库static library
概述 在项目开发的过程中,经常使用静态库文件.例如两个公司之间业务交流,不可能把源代码都发送给另一个公司,这时候将私密内容打包成静态库,别人只能调用接口,而不能知道其中实现的细节. 库是一些没有mai ...
- iOS UI基础-11.0 UINavigationController
导航控制器 利用UINavigationController,可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是系统自带的“设置”应用 UINavigationController的使用 ...
- list.remove出错 报 Not source之类的错误
private static String removePreviousString(String str,String strPre){ String[] strArray = str.split( ...
- 22.用demo通过点击切换图片路径
用demo通过点击切换图片路径 html: <img src="images/driving.png" class="driving"/> js: ...
- jQuery-切换2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 在caffe中执行脚本文件时 报错:-bash: ./train.sh: Permission denied
报错原因:没有权限 解决方法:chmod 777 train.sh获得权限
- c#之正则表达式
一,C#正则表达式符号模式 字 符 描 述 \ 转义字符,将一个具有特殊功能的字符转义为一个普通字符,或反过来 ^ 匹配输入字符串的开始位置 $ 匹配输入字符串的结束位置 * 匹配前面的零次或多次的子 ...
- Python全栈-day5-数据类型
一.元组 1.元组基础 1)定义:不可变的‘列表’,定义方式(元素1,元素2.......) 2)用途:存多个值,但是只能读不能写 注意:元组的不可变指的是元组内元素id的不可变 t = (11,2, ...
- Sitecore CMS中如何管理默认字段值
在Sitecore CMS中管理默认字段值. 在创建内容时,自定义默认值对内容编辑者特别有用.通过指定良好的默认值,新创建的项目可以预先填充数据,以便内容编辑者不必浪费时间一遍又一遍地填充相同的字段. ...
- oracle查询每隔5分钟区间内的数据量
SELECT COUNT (DISTINCT tmp.PLATE) totalNum, tmp.newTime FROM ( SELECT T .LICENSE_PLATE plate, TO_CHA ...