使用python来操作Excel需要用到xlrd和xlwt这两个库,作用是在python中读取和写入excel数据,使用前需要安装和import导入;

1.Python 读 excel数据

使用Python 读 excel数据,首先需要使用xlrd.open_workbook(文件名)来打开Excel文件,默认是rb方式打开;

然后可以通过xlrd库对象中的方法来获取Excel文件信息,读取excel数据;

import xlrd

from pprint import pprint

staff_excel = xlrd.open_workbook('./staff.xlsx')

# 获取这个表中,sheet工作簿的名称

print(staff_excel.sheet_names())

# 通过名字拿到对应的工作簿

sheet = staff_excel.sheet_by_name('员工基本信息')

# 显示表格的行数,和列数

print(sheet.nrows)

print(sheet.ncols)

# 读取第二行的所有cell中的内容

print(sheet.row_values(2))

# 获取第2行,第0列的值

print(sheet.cell(2,0).value)

print(sheet.cell_value(2,0))

data_type = sheet.cell(2,2).ctype

print(data_type)

if data_type is 3:

# 返回一个元组

# ret = xlrd.xldate_as_tuple(sheet.cell_value(1,2),staff_excel.datemode)

# 将excel表中时间转换为python中的时间

ret = xlrd.xldate_as_datetime(sheet.cell_value(1,2), staff_excel.datemode)

print(ret.strftime('%Y-%m-%d'))

row_values(i)和col_values(i)方法可以获取指定行数或者列数的信息,其中i是从0开始计数的,这两个方法都是返回list对象

cell_value(i, j)方法可以读取单元格数据,i是行数,j是列数,行数和列数都是从0开始计数

在excel中0表示empty,1表示string,2表示number,3表示date,4表示boolean,5表示error

2.将Excel数据转换为json写入到文件

首先需要打开excel文件,然后通过名字拿到对应sheet,然后就可以开始操作excel表格;

先创建一个空列表,获取excel表格中的第一行作为字典的key值;

然后在局部变量中创建一个字典对象(每次新的循环,字典对象需求清空),通过两层循环(外循环控制行,内循环控制列)进行取值,将取到的值赋值给字典对象,每次循环完毕都将字典对象添加到定义的空列表中;

要将数据写入文件中,可以使用with上下文管理器,通过json.dumps()方法将之前存放数据的自定义列表进行序列化,然后写入文件,想输出真正的中文需要指定参数ensure_ascii=False;

json_list = []

keys = sheet.row_values(0)

print(keys)

for index_r in range(1,sheet.nrows): # [1,2]

# 这个字典必须是局部变量

line = {}

for index_c in range(sheet.ncols): # [0, 3]

# 拿到类型

cell_type = sheet.cell(index_r, index_c).ctype

# 拿到值

cell_value = sheet.cell(index_r, index_c).value

# 如果是时间类型

if cell_type is 3:

cell_value = xlrd.xldate_as_datetime(cell_value, staff_excel.datemode).strftime('%Y-%m-%d')

line[keys[index_c]] = cell_value

else:

json_list.append(line)

pprint(json_list, indent=4)

with open('staff.json', 'a+',) as f:

f.write(json.dumps(json_list, ensure_ascii=False))

3.将json文件重新写入Excel

# 创建一个Excel对象文件

new_staff = xlwt.Workbook()

staff_sheet = new_staff.add_sheet('xkd员工信息')

with open('staff.json') as f:

# 返回一个列表

data = json.load(f)

# 获取Excel中的第一行

item = data[0]

# 获取Excel中的值

column_values = []

for item in data:

column_values.append(item.values())

# 写入第一行

for i,key in enumerate(item.keys()):

print(key)

staff_sheet.write(0, i, label=key)

# 写入其他的行

for i,column in enumerate(column_values):

for j,column_value in enumerate(column):

staff_sheet.write(i+1, j, label=column_value)

new_staff.save('./new_staff.xls')

python连接excel_Python操作Excel相关推荐

  1. 怎么python编程excel_Python操作excel

    python 读写 excel 有好多选择,但是,方便操作的库不多,在我尝试了几个库之后,我觉得两个比较方便的库分别是 xlrd/xlwt.openpyxl. 之所以推荐两个库是因为这两个库分别操作的 ...

  2. python统计excel_Python操作excel做些统计

    作为一名苦逼的打杂人员,经常要为N个部门做些统计工作,包括但不限于工作量统计.收入统计.服务质量统计. 数据格式集中在EXCEL,通常包含一个索引列,根据这个列获得一些属性数据,比如人员对应工作量等. ...

  3. python操作redis实例_Java,php,Python连接并操作redis实例

    1.Java连接并操作redis 在Eclipse里新建一个java project,导入jedis-*.jar包. 示例代码,其他对应的操作类型见:http://my.oschina.net/u/2 ...

  4. Python读取和操作Excel(.xlsx)文件

    Python读取和操作Excel(.xlsx)文件 使用openpyxl库来控制excel文件(即.xlsx为后缀的文件).这里介绍一下excel数据的结构. 打开excel文件后生成一个workbo ...

  5. Python中xlrd操作excel单元格

    学习目标 Python中xlrd操作excel单元格 学习内容 1.获取工作表 sheet=data.sheet_by_index(0) 2.返回单元格对象 sheet.cell(1,2) #返回第二 ...

  6. python 标准库 excel_Python 操作 Excel 的函数库

    1. Python 操作 Excel 的函数库 我主要尝试了 3 种读写 Excel 的方法: 1> xlrd, xlwt, xlutils: 这三个库的好处是不需要其它支持,在任何操作系统上都 ...

  7. python提取内容保存excel_Python操作Excel之数据提取

    最近发现excel数据量极大,并且通过简单的数据操作不能提取到我需要的数据,如果单独操作,数据量太大耗时太长. 想着通过简单的方式,并且快速提取数据,就想到了Python. python操作Excel ...

  8. csv文件怎么转成excel_Python操作Excel文件(1):花式大师pyexcel

    本文共2900余字,预计阅读时间12分钟,本文知乎连接:Python操作Excel文件(1):花式大师pyexcel,本文同步发布于silaoA的博客和微信公众号平台. 关注学习了解更多的Cygwin ...

  9. wxpython处理excel_Python操作Excel的Xlwings教程(二)

    在上篇文章<操作Excel的Xlwings教程(一)>中介绍了Python 中操作Excel的一些模块,重点介绍了Xlwings的一些基本操作. 本次文章将继续上次的知识点,将介绍Xlwi ...

最新文章

  1. c语言if.while.for,C语言操纵语句输入输出ifwhilefor.ppt
  2. 5.数据绑定和表单标签库
  3. 聊聊阿里面试的三个层次!
  4. 进阶指南:如何编写可重用程序
  5. LeetCode 2208. 将数组和减半的最少操作次数(优先队列)
  6. LeetCode 921. 使括号有效的最少添加(栈)
  7. HTML5/CSS3笔记
  8. 招聘 | 好未来NLP算法工程师,包括实习生、应届生和社招,组内论文多,技术深厚...
  9. python调用jsonrpc接口_python使用grpc调用rpc接口
  10. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第2节 反射_5_反射_概述
  11. 基于Jsoup爬虫Demo
  12. 投射式触摸屏自电容与互电容工作原理基础(未完待续)
  13. [luogu P2183] [国家集训队]礼物 {exlucas}
  14. map.java.opts_关于mapreduce.map.java.opts
  15. 【简约而不简单:神级代码的小秘密】| 第二章 栈
  16. Google 工程主管:AIGC 将在三年内终结编程!
  17. 在我附近的网吧的代理服务器iptables脚本
  18. 这篇文章,带你全面了解外包公司
  19. 小米3g路由器编译libwebsockets
  20. BUCK降压控制电路指南

热门文章

  1. 小白如何在阿里云快速建站(pc站+手机站+公众号+小程序)
  2. 加拿大移民政策调整,注意,这些可能会影响到你
  3. Android 常用工具类,终局之战
  4. [NOIP2010 普及组] 三国游戏 题解
  5. 计算机屏幕变红色,win7系统电脑屏幕变成红色的设置技巧
  6. 计算机网络(十九)其他IP相关技术
  7. 关于微服务的三个厄运问题
  8. 社区社群运营,如何打造火爆营销的方法?
  9. 【imessage群发苹果推信】[iMessageSuspic](Apple推送服务)使用信息推送服务
  10. 寒武纪重磅发布首款AI云芯片,陈天石要让端云结合占领10亿智能终端!