Bootstrap

python xlrd 教程_Python新手入门必学十大模块之四:xlrd 和 xlwt

文章目录1. xlrd 模块

1.4.1 取得第一个工作表中的所有的数据

1.4.1 取得指定区域内的数据

1.1 打开文件

1.2 常用方法和对象

1.3 使用样例

1.4 应用讲解

2. xlwt 模块

2.5.1 生成简单的xls文件

2.5.2 设置表格样式

2.3.1 对其方式

2.3.2 字体样式

2.3.3 边框样式

2.1创建文件操作对象

2.2 常用方法

2.3 单元格样式

2.4 使用样例

2.5 应用讲解

3. 后记

数据处理是 Python 目前最热门的应用领域之一,excel 是最通用的电子表格,因此使用 python 读写 excel 文件,就成了Python程序员入门必学的基础之一。python 读写 excel 文件的工具有很多,比如,xlrd、xlwt、xlutils、openpyxl 等。其中 xlrd、xlwt 因为诞生较早,应用也相对普遍,本文将介绍这两个模块的使用要点。xlrd 和 xlwt 是第三方模块,需要使用 pip 命令安装:python -m pip install xlrdpython -m pip install xlwt

1. xlrd 模块

1.1 打开文件>>> import xlrd>>> book = xlrd.open_workbook('D:/DATA/人员统计.xls')  # 打开文件12

1.2 常用方法和对象

excel中最重要的方法就是文件(book)和工作表(sheet)的操作。book常用方法

方法功能描述sheets()取得所有的工作表对象列表

sheet_by_index(sheet_indx)通过索引顺序获取工作表对象

sheet_by_name(sheet_name)通过名称获取工作表对象

sheet_names()返回book中所有工作表的名字

sheet_loaded(sheet_name or indx)检查某个sheet是否导入完毕sheet常用方法

方法功能描述nrows获取该sheet中的有效行数

ncols获取列表的有效列数

row(row_idx)返回由该行中所有的单元格对象组成的列表

row_slice(row_idx)返回由该行中所有的单元格对象组成的列表(同上)

row_types(row_idx, start_col_idx=0, end_col_idx=None)返回由该行中所有单元格的数据类型组成的列表

row_values(row_idx, start_col_idx=0, end_col_idx=None)返回由该行中所有单元格的数据组成的列表

row_len(row_idx)返回该列的有效单元格长度

col(col_idx, start_row_idx=0, end_row_idx=None)返回由该列中所有的单元格对象组成的列表

col_slice(col_idx, start_row_idx=0, end_row_idx=None)返回由该列中所有的单元格对象组成的列表

col_types(col_idx, start_row_idx=0, end_row_idx=None)返回由该列中所有单元格的数据类型组成的列表

col_values(col_idx, start_row_idx=0, end_row_idx=None)返回由该列中所有单元格的数据组成的列表

cell(row_idx,col_idx)返回单元格对象

cell_type(row_idx,col_idx)返回单元格中的数据类型

cell_value(row_idx,col_idx)返回单元格中的数据

1.3 使用样例>>> import xlrd>>> book = xlrd.open_workbook('D:/DATA/人员统计.xls')>>> book.sheets()  # 取得所有工作表对象[]>>> book.sheet_by_index(0)  # 取得第一个工作表>>> book.sheet_names()  # 取得所有工作表的名称['统计']>>> sheet = book.sheet_by_name('统计')  # 根据名称取得工作表对象>>> sheet.nrows  # 取得有效行数6>>> sheet.ncols  # 取得有效列数5>>> sheet.row(0)  # 取得第一行中所有的单元格对象[text:'部门', text:'姓名', text:'身高(cm)', text:'体重(kg)', text:'年龄']>>> sheet.row_slice(0)  # 取得第一行中所有的单元格对象[text:'部门', text:'姓名', text:'身高(cm)', text:'体重(kg)', text:'年龄']>>> sheet.row_types(0)  # 取得第一行中所有的单元格的类型array('B', [1, 1, 1, 1, 1, 1])>>> sheet.row_values(1)  # 取得第二行所有的单元格的值['研发组', '张岚山', 180.0, 71.0, 25.0]>>> sheet.col_values(4)  # 取得第5列中所有单元格的值['年龄', 25.0, 30.0, 24.0, 26.0, 25.0]>>> sheet.cell(1,1)  # 取得第二行第2列的单元格对象text:'张岚山'>>> sheet.cell_type(1,1)  # 取得第二行第2列的单元格对象的类型1>>> sheet.cell_value(1,1)  # 取得第二行第2列的单元格的值'张岚山'1234567891011121314151617181920212223242526272829

1.4 应用讲解

1.4.1 取得第一个工作表中的所有的数据>>> import xlrd>>> book = xlrd.open_workbook('D:/DATA/人员统计.xls')>>> sheet = book.sheet_by_index(0)>>> for row_index in range(sheet.nrows):

print(sheet.row_values(row_index))['部门', '姓名', '身高(cm)', '体重(kg)', '年龄']['研发组', '张岚山', 180.0, 71.0, 25.0]['研发组', '刘雯雯', 170.0, 80.0, 30.0]['研发组', '林建忠', 175.0, 70.0, 24.0]['测试组', '李凯', 175.0, 69.0, 26.0]['测试组', '王冬冬', 168.0, 55.0, 25.0]123456789101112

1.4.1 取得指定区域内的数据>>> import xlrd>>> book = xlrd.open_workbook('D:/DATA/人员统计.xls')>>> sheet = book.sheet_by_index(0)>>> for row_index in range(1,5):

print(sheet.row_values(row_index, 2, 5))

[180.0, 71.0, 25.0][170.0, 80.0, 30.0][175.0, 70.0, 24.0][175.0, 69.0, 26.0]12345678910

2. xlwt 模块

2.1创建文件操作对象

>>> import xlwt>>> book = xlwt.Workbook()12

2.2 常用方法文件对象book的常用方法

方法功能描述add_sheet(sheet_name)添加工作表,返回工作表对象

save(xls_name)保存文件工作表对象常用方法和属性

方法功能描述wirite(r, c, label=’’, style=)向指定单元格写入数据

write_merge(r0, r2, c1, c1, label=’’, style=)合并行列

2.3 单元格样式

2.3.1 对其方式

xlwt.Alignment()对象的常用属性如下

属性描述horz水平对齐方式

vert垂直对齐方式

wrap自动换行,0 或 1

对齐方式的常量描述xlwt.Alignment.VERT_TOP上端对齐

xlwt.Alignment.VERT_CENTER居中对齐(垂直方向上)

xlwt.Alignment.VERT_BOTTOM低端对齐

xlwt.Alignment.HORZ_LEFT左端对齐

xlwt.Alignment.HORZ_CENTER居中对齐(水平方向上)

xlwt.Alignment.HORZ_RIGHT右端对齐

2.3.2 字体样式

xlwt.Font()对象的常用属性如下

属性描述name字体类型名称

colour_index字体颜色下标,整型

height字体大小,11为字号,20为衡量单位

bold字体是否加粗,True or False

underline是否加下划线,True or False

italic是否使用斜体,True or False

2.3.3 边框样式

xlwt.Borders()对象的常用属性如下

属性描述left左边框,整型

right右边框,整型

top上边框,整型

bottom下边框,整型

left_colour左边框颜色

right_colour右边框颜色

top_colour上边框颜色

bottom_colour下边框颜色边框线取值:细实线:1,小粗实线:2,细虚线:3,中细虚线:4,大粗实线:5,双线:6,细点虚线:7,大粗虚线:8,细点划线:9,粗点划线:10,细双点划线:11,粗双点划线:12,斜点划线:13

2.4 使用样例>>> import xlwt>>> book = xlwt.Workbook()>>> sheet = book.add_sheet('test')   # 添加sheet>>> font = xlwt.Font()  # 字体样式>>> font.name = '微软雅黑'>>> font.bold = True>>> borders = xlwt.Borders()  # 边框样式>>> borders.left = 1>>> borders.right = 2>>> borders.top = 3>>> borders.bottom = 4>>> borders.left_colour = 4>>> borders.right_colour = 5>>> borders.top_colour = 6>>> borders.bottom_colour = 7>>> alignment = xlwt.Alignment()  # 对齐方式>>> alignment.horz = xlwt.Alignment.HORZ_CENTER  # 水平居中>>> alignment.vert = xlwt.Alignment.VERT_CENTER  # 垂直居中>>> style_0 = xlwt.XFStyle()>>> style_0.font = font>>> style_0.alignment = alignment>>> style_1 = xlwt.XFStyle()>>> style_1.borders = borders>>> sheet.write(0, 1, '姓名', style_0)   # 向第一行第2列写入值“姓名”,并设置字体和>>> sheet.write_merge(1, 2, 1, 1, '张岚山', style_1)  # 将第二行到第三行的第二列合并,赋值‘张三’>>> book.save('d:/test.xls')  # 保存1234567891011121314151617181920212223242526

2.5 应用讲解

2.5.1 生成简单的xls文件>>> import xlwt>>> book = xlwt.Workbook()>>> sheet = book.add_sheet('人员表')  # 添加sheet页>>> col_names = ['姓名', '手机号', '邮箱']  # 列名称>>> for index, name in enumerate(col_names):

sheet.write(0, index, name)>>> book.save('test.xls')1234567

2.5.2 设置表格样式

xlwt中列宽的值表示方法:每个字符长度为256,其创建时使用的默认宽度为2960,即11个字符0的宽度。所以我们在设置列宽时可以使用如下办法:width = 256 * 20 # 256为衡量单位,20表示20个字符>>> import xlwt>>> book = xlwt.Workbook()>>> sheet = book.add_sheet('人员表')  # 添加sheet页>>> style = xlwt.XFStyle()   # 创建样式对象>>> alignment = xlwt.Alignment() # 对齐方式:水平垂直居中>>> alignment.horz = xlwt.Alignment.HORZ_CENTER  # 水平居中>>> alignment.vert = xlwt.Alignment.VERT_CENTER  # 垂直居中>>> style.alignment = alignment>>> font = xlwt.Font()  # 字体加粗>>> font.name = '微软雅黑'>>> font.bold = True>>> style.font = font>>> borders = xlwt.Borders()  # 边框加粗>>> borders.left = 1>>> borders.right = 1>>> borders.top = 1>>> borders.bottom = 1>>> style.borders = borders>>> col_names = ['姓名', '手机号', '邮箱']  # 列名称>>> for index, name in enumerate(col_names):

sheet.write(0, index, name)>>> sheet.col(0).width = 256 * 20  # 设置第1列的宽度为20个字符宽度>>> tall_style = xlwt.easyxf('font:height 720;') # 36pt,类型小初的字号>>> sheet.row(0).set_style(tall_style)  # 设置第1行的行高是36*20>>> book.save('t1.xls')

;