python对excel进行读写操作
python操作excel主要用到xlrd和xlwt这两个库,xlrd是读excel,xlwt是写excel的库。
欢迎使用Markdown编辑器
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
一、安装库
想要实现对excel文件的读写功能,需要安装一些库。下面三个库对excel进行读写操作必不可少。
1.xlwt:对xls等excel文件的写入
2.xlrd:对xls等excel文件的读取
3.openpyxl:对xlsm、xlsx等excel文件进行读写操作
4.xlutils结合xlrd可以达到修改excel文件目的
5.xlsxwriter可以写excel文件并加上图表
1.安装xlrd模块
到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。
或者在cmd窗口 pip install xlrd
#查看版本
pip list
#安装指定版本
pip install xlrd == 1.2.0
#卸载
pip uninstall xlrd
2.安装xlwt模块
到python官网下载http://pypi.python.org/pypi/xlwt模块安装,前提是已经安装了python 环境。
或者在cmd窗口 pip install xlwt
2.安装openpyxl模块
或者在cmd窗口 pip install openpyxl
补充(多个python版本)
使用pip安装第三方模块
1.python2.x: cmd窗口输入python -m pip install 模块名
如 python -m pip install requests
2.python3.x: cmd窗口输入python3 -m pip install 模块名
如 python3 -m pip install requests
二、使用介绍
1、常用单元格中的数据类型
0 - empty(空的) 1 - string(text) 2 - number 3 - date 4 - boolea 5 - error 6 - blank(空白表格)
2、导入模块
import xlrd
import xlwt
3、Excel文件基础操作(读取excel数据)
#判断文件是否存在
print os.path.exists([路径/文件名]);
3.1 打开Excel文件读取数据(所有工作簿sheet)
data = xlrd.open_workbook(filename)
import xlrd;#对excel数据进行读取的库
workbook= xlrd.open_workbook(r'C:\Users\Administrator\Desktop\999.xls')
#文件名以及路径,如果路径或者文件名有中文给前面加一个r拜师原生字符。
#使用r就防止了\n的转义。
3.2获取工作簿sheet名称
print workbook.sheet_names()#输出sheet名[u'Sheet1', u'test', u'Sheet3']
#根据下标获取sheet名称
sheet_name=workbook.sheet_names()[0]
print sheet_name
#根据sheet索引获取sheet内容,同时获取sheet名称、行数nrows、列数ncols
sheet1 = workbook.sheet_by_index(0)
print sheet1.name,sheet1.nrows,sheet1.ncols
#根据sheet名称获取sheet内容,同时获取sheet名称、行数nrows、列数ncols
sheet1 = workbook.sheet_by_name('999')
print sheet1.name,sheet1.nrows,sheet1.ncols
3.3获取指定工作簿的行和列值
#根据sheet名称获取整行和整列的值
sheetData= workbook.sheet_by_name('test')
rows = sheetData.row_values(3)#第四行
cols = sheetData.col_values(0)#第一列
print rows
print cols
print workbook.sheet_names()
3.4获取指定单元格的内容
#sheetData= workbook.sheet_by_name('test')
print sheetData.cell(0,0).value#第一行第列
print sheetData.cell(9,0).value
print sheetData.cell_value(8,3)
print sheetData.row(7)[3].value
中文转码,在python文件首行加(#--coding:UTF-8-sig --)字符.首行首行注意。
如果不行的话,可加。encode(‘UTF-8’)进行转码例如:
sheet2.cell(0,0).value.encode(‘UTF-8’)
#获取单元格内容的数据类型
#(说明:ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error)
print sheetData.cell(3,0).ctype #