由于工作需要,需要对 Excel 数据进行一些预处理,所以随便写了一点 python 处理 Excel 的方法。。。
一、导入相应库
xlrd:读入Excel
xlwt:写入Excel
安装命令如下:
pip install xlrd
pip install xlwt
二、读入Excel
1. Excel表格内容
下图分别为 test.xlsx 的 sheet1 和 sheet2 数据:
2. 代码 code
# -*- coding: utf-8 -*-
import xlrd
#如果处理日期时间,import datetime
#from datetime import date,datetime
__author__ = 'Binchasing'
f1_name = 'test.xlsx' #文件名
f1 = xlrd.open_workbook(f1_name) #打开文件
print f1.sheet_names() #打印所有Sheet名字
sheet1_name = f1.sheet_names()[0] #Sheet1名字
# 根据索引or名称获取sheet内容
sheet1 = f1.sheet_by_index(0) #获取sheet1内容
sheet2 = f1.sheet_by_name('Sheet2') #获取sheet2内容
# 分别显示sheet名字(.name),总行数(.nrows),总列数(.ncols)
print sheet1.name, sheet1.nrows, sheet1.ncols
print sheet2.name, sheet2.nrows, sheet2.ncols
#获取行or列内容
rows = sheet2.row_values(1) # 获取第2行内容
print rows
cols = sheet2.col_values(2) # 获取第3列内容
print cols
# 不同方式获取单元格内容(显示第3行第1列)
print sheet2.cell(2,0).value.encode('utf-8')
print sheet2.cell_value(2,0).encode('utf-8')
print sheet2.row(2)[0].value.encode('utf-8')
# 获取单元格内容的数据类型
#python读取excel中单元格的内容返回的有5种类型ctype:
#ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
print sheet2.cell(1,0).ctype
3. 输出 output
[u'Sheet1', u'Sheet2']
Sheet1 12 5
Sheet2 16 3
[u'\u5e7f\u4e1c', 0.15358814900011789, 0.1531192108472316]
[u'\u6536\u8ba2\u5546\u54c1\u6570\u91cf', 0.1531192108472316, 0.09575012248494419, 0.0662265835916449, 0.06478424965797056, 0.06471695832224465, 0.043246131578273374, 0.04324150395611867, 0.04248287305338446, 0.04106440576789475, 0.0396537204291989, 0.036066907296305406, 0.03317248513899366, 0.03194612025991795, 0.028247799159356213, 0.024346356684779705]
北京
北京
北京
1
[Finished in 0.1s]
三、写入Excel
。。。。之后再更新