安装包下载地址
http://pypi.python.org/pypi/xlrd
http://pypi.python.org/pypi/xlwt
http://pypi.python.org/pypi/xlutils3
如何安装?
1.直接解压这两个压缩包,解压后,复制到Python的安装路径下去。
2.进入cmd命令行界面,分别进入到这两个文件的文件夹路径下
3.输入命令 python setup.py install
使用:
1.import xlrd
2.import xlwt3
3.import xlutils3
介绍:
1.import xlrd 所有读取excel的方法都在这个模块里面
2.import xlwt3 所有写入数据到excel的方法都在这个模块里面
3.import xlutils3 修改excel,简单理解可以拷贝已有excel进行修改,生成新的excel表格
常用读取数据的方法:
1:workbook=xlrd.open_workbook(path) 打开excel,path是指excel所在的路径
2:workbook.sheet_names() 获取excel里面的所有表单名
3:sheet_obj=sheets()[0] 根据索引获取excel里面的表单对象
4:sheet_obj=sheet_by_index(0) 根据顺序索引获取表单对象
5:sheet_obj=sheet_by_name(‘summer’) 通过名称获取表单对象
6:sheet_obj.nrows 获取行数
7:sheet_obj.ncols 获取列数
8 :sheet_obj.row_values(0) 获取第1行的值
9 :sheet_obj.col_values(1) 获取第2列的值
10:sheet_obj.cell_value(1,1)
操作顺序:打开表—>获取表单对象—>获取cell值
写入数据到excel 的常用方法:
1:wb=xlwt3.Workbook()#获取一个工作表,创建一个对象
2:sheet=wb.add_sheet(“summer & python&2”) 创建一个表单
3:sheet.write(i,j,value[i][j]) 确定好位置写入具体的值
4:wb.save(path) 把你写入的数据保存好,一定要记得操作,不然数据就没有正常保存啦!
操作顺序:
先创建一个excel对象—新建一个表单对象—插入数据—保存excel
操作如果出错: 导入xlwt3报错:ValueError: ‘init’ in slots conflicts with class variable
解决方案:打开Python33\Lib\site-packages\xlwt3\formula.py文件,将其中的
slots = [“init”, “__s”, “__parser”, “__sheet_refs”, “__xcall_refs”]
修改为 slots = [ “__s”, “__parser”, “__sheet_refs”, “__xcall_refs”]
举个栗子:
文件名class_5_excel_read.py(读取数据)
import xlrd
'''1.读取excel里面的数据的所有函数操作'''
path='D:\\Downloads\\python.xls'#注意反斜杠
workbook=xlrd.open_workbook(path)
'''2.获取所有表单名字'''
sheets_name=workbook.sheet_names()
print("获取的所有表单名字",sheets_name)
'''3.获取表单对象'''
sheet_obj_1=workbook.sheet_by_index(0)#通过索引来获取,下表从0开始
print("通过索引顺序获取一个sheet对象",sheet_obj_1)
sheet_obj_2=workbook.sheet_by_name('Sheet1')#通过表单名来获取对象
print("通过表单名获取一个sheet对象",sheet_obj_2)
sheet_obj_3=workbook.sheets()[0]#根据顺序索引获取表单对象
print("通过索引顺序获取一个sheet对象",sheet_obj_3)
'''4.获取表单里面的数据行和列数'''
row_num=sheet_obj_3.nrows
print("所有的行数",row_num)
col_num=sheet_obj_3.ncols
print("所有的列数",col_num)
'''5.获取表单里面所有的数据'''
row_0_value=sheet_obj_3.row_values(0)#获取第一行所有值
print("所有第一行的值",row_0_value)
col_1_value=sheet_obj_3.col_values(1)#获取第2列所有值
print("所有第2列的值",col_0_value)
'''6.获取表单里面某个具体的数据'''
value_0_0=sheet_obj_3.cell_value(0,0)
print("第一行第一列的这个数据是:",value_0_0)
value_1_0=sheet_obj_3.cell_value(1,0)
print("第2行第一列的这个数据是:",value_1_0)
举个栗子:
文件名class_5_excel_write.py(写入数据)
import xlrd
import xlwt3
workbook_new=xlwt3.Workbook()#1.创建一个excel对象
#如果需要覆盖已经操作的单元格,需要设置cell_overwrite_ok=True
sheet_new=workbook_new.add_sheet('creat_new_sheet',cell_overwrite_ok=True)# 2.创建一个表单
sheet_new.write(0,0,"name")#3.确定好位置写入具体的值
sheet_new.write(0,1,"sex")
sheet_new.write(1,0,"花花")
sheet_new.write(1,1,"女")
workbook_new.save('D:\\Downloads\\python1.xls')#4.把你写入的数据保存好,一定要记得操作,不然数据就没有正常保存啦!
#测试数据是否写入成功,来读取数据
path='D:\\Downloads\\python1.xls'#注意反斜杠
workbook=xlrd.open_workbook(path)
sheet_obj_1=workbook.sheet_by_index(0)#通过索引来获取,下表从0开始
print("通过索引顺序获取一个sheet对象",sheet_obj_1)
row_0_value=sheet_obj_3.row_values(0)#获取第一行所有值
print("所有第一行的值",row_0_value)
col_1_value=sheet_obj_3.col_values(1)#获取第2列所有值
print("所有第2列的值",col_0_value)