Python操作excel表格
2017-10-11 23:41
288 查看
【本文由“java工程师”发布,2017年10月11日】
用Python操作Excel在工作中还是挺常用的,因为毕竟不懂Excel是一个用户庞大的数据管理软件
注:本篇代码在Python3环境下运行
首先导入两个模块xlrd和xlwt,xlrd用来读取Excel表格,xlwt是写Excel表格
在命令提示行输入命令:
pip install xlrd
pip install xlwt
下面我们学习一下这两个模块的使用
一、xlrd
1.首先导入模块,import xlrd
2.先写一个表用来实验,表的内容是这样的:
获取工作簿,有三种方式
获取总行数和总列数
获取第一行及第一列数据
获取某个单元格的值
循环读取所有数据
这是基本操作,下面扩展一点
关于时间格式:
看一下取时间那一列数据,得到的什么
这并不是我们想要的,这个时间格式是Excel中,以1900年1月1日为起始时间,以天为单位的得到的数据
其实在这个模块中,有个属性可以显示单元格数据的类型,ctype,有这几种类型:
ctype = 1 # 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
我们可以查看一下,它打印的这个是什么类型
原来他能识别这是时间格式,那我们要处理一下了,让他显示格式化时间
可以用这条命令来转换一下
这个格式就可以用了
所以当我们循环读取并打印数据的时候,可以做一个判断,如果数据的ctype为3,就做这样一个转换
用Python操作Excel在工作中还是挺常用的,因为毕竟不懂Excel是一个用户庞大的数据管理软件
注:本篇代码在Python3环境下运行
首先导入两个模块xlrd和xlwt,xlrd用来读取Excel表格,xlwt是写Excel表格
在命令提示行输入命令:
pip install xlrd
pip install xlwt
下面我们学习一下这两个模块的使用
一、xlrd
1.首先导入模块,import xlrd
2.先写一个表用来实验,表的内容是这样的:
import xlrd file_path = '1.xlsx' xlrd.Book.encoding = "utf8" #设置编码 data = xlrd.open_workbook(file_path)#打开文件 sheet_names = data.sheet_names() #查看文件中包含sheet的名称
获取工作簿,有三种方式
# table = data.sheets()[0] # table = data.sheet_by_name('Sheet1') table = data.sheet_by_index(0) #取第一张工作簿(三种方法)
获取总行数和总列数
rows_count = table.nrows #取总行数 cols_count = table.ncols#取总列数
获取第一行及第一列数据
row_data = table.row_values(0)#获取第一行数据(数组) col_data = table.col_values(0)#获取第一列数据(数组)
获取某个单元格的值
cell_data = row_data[0] #取第0行第0列的值 战士 cell_data_A1 = table.cell(1, 1).value #取第1行第1列的值 李白
循环读取所有数据
for row in range(0,rows_count): for col in range(0,cols_count): data1 = table.cell(row,col).value print(data1,end=' ') print('\n')
这是基本操作,下面扩展一点
关于时间格式:
看一下取时间那一列数据,得到的什么
['时间', 42993.0, '2017.01.12', 40900.0]
这并不是我们想要的,这个时间格式是Excel中,以1900年1月1日为起始时间,以天为单位的得到的数据
其实在这个模块中,有个属性可以显示单元格数据的类型,ctype,有这几种类型:
ctype = 1 # 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
我们可以查看一下,它打印的这个是什么类型
print(table.cell(1,6).ctype)#3 print(table.cell(2,6).ctype)#1 print(table.cell(3,6).ctype)#3
原来他能识别这是时间格式,那我们要处理一下了,让他显示格式化时间
可以用这条命令来转换一下
date_value = xlrd.xldate_as_tuple(table.cell_value(1,6),data.datemode) print(date_value)#(2017, 9, 15, 0, 0, 0)
这个格式就可以用了
from datetime import date,datetime print(date(*date_value[:3]))#2017-09-15 print(date(*date_value[:3]).strftime('%Y/%m/%d'))#2017/09/15
所以当我们循环读取并打印数据的时候,可以做一个判断,如果数据的ctype为3,就做这样一个转换
相关文章推荐
- python操作excel表格(xlrd/xlwt)
- [python]使用xlrd对Excel表格进行读写操作
- python使用openpyxl操作excel表格
- Python学习—对excel表格的操作
- python中使用xlrd、xlwt操作excel表格详解
- 使用Python对Excel表格进行简单的读写操作(xlrd/xlwt)
- python中使用xlrd、xlwt操作excel表格详解
- python操作excel表格详解(xlrd/xlwt)
- Python操作Excel表格
- python中使用xlrd、xlwt操作excel表格详解
- python中使用xlrd、xlwt操作excel表格详解
- Python操作Excel表格,xlwt模块的使用
- python操作excel表格(xlrd/xlwt)
- python处理excel表格的一些基本操作(1)
- python中使用xlrd、xlwt操作excel表格详解
- python操作Excel表格读写--xlrd 模块
- python操作excel表格的方法
- python操作excel表格
- python中使用xlrd、xlwt操作excel表格详解
- python对excel表格的操作