返回目录:excel表格制作
python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。下面记录python读取excel.
这个过程有几个比较麻烦的问题,比如读取日期、读合并单元格内容。下面先看看e799bee5baa6e997aee7ad94e4b893e5b19e331基本的操作:
首先读一个excel文件,有两个sheet,测试用第二个sheet,sheet2内容如下:

python 对 excel基本的操作如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# -*- coding: utf-8 -*-import xlrd
import xlwtfrom datetime import date,datetimedef read_excel(): # 打开文件
workbook = xlrd.open_workbook(r'F:\demo.xlsx') # 获取所有sheet
print workbook.sheet_names() # [u'sheet1', u'sheet2']
sheet2_name = workbook.sheet_names()[1] # 根据sheet索引或者名称获取sheet内容
sheet2 = workbook.sheet_by_index(1) # sheet索引从0开始
sheet2 = workbook.sheet_by_name('sheet2') # sheet的名称,行数,列数
print sheet2.name,sheet2.nrows,sheet2.ncols # 获取整行和整列的值(数组)
rows = sheet2.row_values(3) # 获取第四行内容
cols = sheet2.col_values(2) # 获取第三列内容
print rows print cols # 获取单元格内容
print sheet2.cell(1,0).value.encode('utf-8') print sheet2.cell_value(1,0).encode('utf-8') print sheet2.row(1)[0].value.encode('utf-8')
# 获取单元格内容的数据类型
print sheet2.cell(1,0).ctypeif __name__ == '__main__':
read_excel
#导入包
import xlrd
#设置路径
path='C:\\Users\\jyjh\\Desktop\\datap.xlsx'
#打开文件
data=xlrd.open_workbook(path)
#查询工作表
sheets=data.sheets()
sheets
可以通过函数、索引、名称获得工作表。
sheet_1_by_function=data.sheets()[0]
sheet_1_by_index=data.sheet_by_index(0)
sheet_1_by_name=data.sheet_by_name(u'Sheet1')
可以通过方法获得某一列或者某一行的数值。
sheet_1_by_name.row_values(1)
sheet_1_by_name.col_values(1)
通过工作表的属性获得行数和列数。
n_of_rows=sheet_1_by_name.nrows
n_of_cols=sheet_1_by_name.ncols
也可以用一个循环来遍历一次文件。
for i in range(n_of_rows):
print sheet_1_by_name.row_values(i)
可以通过以下的任意一种方式访问单元格的数值。
cell_A1=sheet_1_by_name.cell(0,0).value
cell_A1=sheet_1_by_name.row(0)[0].value
cell_A1=sheet_1_by_name.col(0)[0].value
最后通过以下的方法对单元格的数值进行修改。
row=0
col=0
#ctype 0:empty,1:string,2:number,3:date,4:boolean,5:error
cell_type=1
value='Hello,Excel'
cell_A1=sheet_1_by_name.cell(0,0).value
format=0
sheet_1_by_name.put_cell(row,col,cell_type,value,format)
cell_A1=sheet_1_by_name.cell(0,0).value
下载扩展库
xlrd 读excle
xlwt 写excle
直接在百度上复搜就能下载
下载后使用
import xlrd
就可以读excle文件了
打开制文件:
xls = xlrd.open_workbook(fileName)
选择表:括号内为第几个表
sheet = xls.sheets()[0]
获取zd列:括号内为第几列的数据
col = sheet.col_values(0)
获取行:括号内为第几行的数据
row = sheet.row_values(0)
本程序需要导入xlrd包,可读取后缀名为.xls和.xlsx的Excel文件,使用示例如下:
import xlrd
def read(file, sheet_index=0):
"""
:param file: 文件路径
:param sheet_index: 读取的工作表索引
:return: 二维数组
"""
workbook = xlrd.open_workbook(file)
# all_sheets_list = workbook.sheet_names()
# print("本文件中所有的工作表名称:", all_sheets_list)
# 按索引读取工作表
sheet = workbook.sheet_by_index(sheet_index)
print("工作表名称:", sheet.name)
print("行数:", sheet.nrows)
print("列数:", sheet.ncols)
# 按工作表名称读取数据
# second_sheet = workbook.sheet_by_name("b")
# print("Second sheet Rows:", second_sheet.nrows)
# print("Second sheet Cols:", second_sheet.ncols)
# 获取单元格的数据
# cell_value = sheet.cell(1, 0).value
# print("获取第2行第1列的单元格数据:", cell_value)
data = []
for i in range(0, sheet.nrows):
data.append(sheet.row_values(i))
return data
if __name__ == '__main__':
print(read('工作簿636f7079e79fa5e981933301.xlsx'))