python的xlrd模块使用,python扩展库xlwt支持对excel
Xlrd模块可以读取excel文件的内容,xlwt模块可以写入excel文件。固定
pip安装xlrd
PIP XLWT一、xlrd模块使用的excel文档名称为contact.xls,内容如下:
(1)打开excel文件,获取所有工作表。
导入xlrd
#打开Excel文件读取数据
data=xlrd . open _ workbook( contact . xls ,formatting _ info=true)
#默认formatting_info=False,请注意添加参数formatting_info=True可以保存之前Excel数据的格式。
Sheet_name=data.sheet_names() #获取所有工作表名称
Print(sheet_name) # [Bank 2 , Bank 3](2)根据下标获取工作表名称
#根据下标获取工作表名称
sheet 2 _ name=data . sheet _ names()[1]
Print(sheet2_name) # Bank 3(3)根据工作表的索引或名称获取工作表的内容,同时获取工作表的名称、行数和列数。
#根据工作表的索引或名称获取工作表的内容,获取工作表的名称、列数和行数。
sheet2=data.sheet_by_index(1)
Print(sheet2名称:{},sheet2列号:{},sheet2行号:{} 。格式(sheet2.name,sheet2.ncols,sheet2.nrows))
# sheet2名称:银行3
# sheet2列数:7
# sheet2行数:5
#根据表名获取表内容,获取表名、列数、行数。
1=data.sheet _ by _ name (bank 2 )
Print(sheet1名称:{},sheet1列号:{},sheet1行号:{} 。格式(sheet1.name,sheet1.ncols,sheet1.nrows))
# sheet1名称:银行2
# sheet1列数:8
# sheet1行数:6(4)根据工作表名称获取整行和整列的值。
#根据工作表名称获取整行和整列的值
1=data.sheet _ by _ name (bank 2 )
print(sheet1.row_values(3))
# [ ,张2 ,开发, IT编码,999.0,133111.0,41463.0,张2 @ 164.com]日期是2013年7月7日,但实际显示为浮点数41463.0。
print(sheet1.col_values(3))
# [,岗位职责, , IT编码,网络维护, ](5)获取指定单元格的内容
#获取指定单元格的内容
Print(sheet1.cell(1,0))。value) #第2行第1列内容:机构名称
Print(sheet1.cell_value(1,0)) #第2行第1列内容:机构名称
Print(sheet1.row(1)[0]。value) #第2行第1列内容:机构名称(6)获取单元格内容的数据类型
#获取单元格内容的数据类型
Print(sheet1.cell(1,0))。ctype) #第2行第1列内容:机构名称为字符串
Print(sheet1.cell(3,4)。ctype) #第四行五列的内容:999是数字类型
Print(sheet1.cell(3,6)。ctype) #第四行七列内容:2013年7月8日为日期类型
# Description: ctype: 0empty,1string,2number,3date,4Boolean,5error (7)获取单元格内容作为日期类型的方法
Xldate_as_tuple使用xlrd处理成日期格式。
从日期时间导入日期时间,日期
if sheet1.cell(3,6)。ctype==3:
print(sheet1.cell(3,6)。值)# 41463.0
date _ value=xlrd . XL date _ as _ tuple(sheet 1 . cell(3,6))。value,data.datemode)
print(日期值)# (2013,7,8,0,0,0)
打印(日期(*日期值[:3])# 2013-07-08
Print(日期(*日期值[:3])。strftime( % y/% m/% d )# 2013/07/08(8)以数字形式获取单元格内容的方法(转换为整数)
if sheet1.cell(3,5)。ctype==2:
print(sheet1.cell(3,5)。值)# 133111.0
num_value=int(sheet1.cell(3,5))。值)
Print(num_value) # 133111(9)获取合并单元格的内容
Merged_cells属性是必需的#这里需要在读取文件时添加一个参数,并将formatting_info参数设置为True,默认值为False,否则可能会调用merged_cells属性得到空值。英国铁路公司
#注意添加参数formatting_info=True可以保存之前数据修改后的格式。
data=xlrd . open _ workbook( contact . xls ,formatting _ info=true)
1=data.sheet _ by _ name (bank 2 )
print(sheet1.merged_cells) # [(0,1,0,8),(2,6,0,1)] br
# merged_cells返回的这四个参数的含义是:(row,row_range,col,col_range),其中[row,row_range]包括row,
#除row _ range外,col也是如此,下标从0开始。
#(0,1,0,8)表示1列-8列合并(2,6,0,1)表示3行-6行合并br
#分别获取合并的2个单元格的内容:
Print(sheet1.cell(0,0)。价值)#银行2
Print(sheet1.cell_value(2,0)) # Bank 2规则:只获取merge_cells返回的row和col低位的索引!
使用以下方法更加方便merge_value=[]
对于sheet1.merged_cells中的(行,行范围,列,列范围):
merge_value.append((row,col))
print(merge_value) # [(0,0),(2,0)]
对于合并值中的五:
print(sheet1.cell(v[0],v[1]).值)
# 银行2
# 银行2二、xlwt模块
常用方法
1.导入xlwt #导入模块
2.workbook=xlwt .工作簿(编码=utf-8) #创建练习本对象
3 .工作表=工作簿。添加工作表(工作表1 )#创建工作表表
4.worksheet.write(0,0, hello) #往表中写内容
5.worksheet.write_merge(0,0,0,2, test)#合并单元格
6.worksheet.col(0)=6000#设置列的宽度
7.worksheet.row(0).高度=1000#设置单元格高度
8.workbook.save(hello.xls) #保存表为hello.xls实际应用
导入xlwt
从日期时间导入日期时间,日期
def set_style(name,height,bold=False,format_str= ):
style=xlwt .XFStyle() #初始化样式
font=xlwt .字体()#为样式创建字体
font.name=name # Times New Roman
font.bold=bold
font.height=高度
边框=xlwt .边框()#为样式创建边框
borders.left=6
borders.right=6
borders.top=6
边框。底部=6
style.font=font
style.borders=边框
风格。数字格式字符串=格式字符串
返回样式
wb=xlwt .工作簿()
ws=wb.add_sheet(测试表)#增加表
ws.col(0).宽度=200*30 #设置第一列列宽
ws.write(0,0,1234.56,set_style(Times New Roman ,220,bold=True,format_str=#,##0.00 ))
ws.write(1,0,datetime.now(),set_style(Times New Roman ,220,bold=False,format_str=DD-MM-YYYY ))
风格ok=xlwt。easyxf(模式:前景色浅蓝色;
字体:绿色,粗体,真’)
模式=xlwt .模式()#一个实例化的样式类
模式。模式=xlwt .模式。实体_模式#固定的样式
模式。pattern _ fore _ colour=xlwt .Style.colour_map[red]#背景颜色
styleOK.pattern=模式
ws.write(2,0,1)
ws.write(2,2,xlwt .公式(“A3 B3”))
wb.save(example.xls) #保存电子表格文档联系人表
导入xlwt
从日期时间导入日期时间,日期
def set_style(name,height,bold=False,format_str= ,align=center ):
style=xlwt .XFStyle() #初始化样式
font=xlwt .字体()#为样式创建字体
font.name=name # Times New Roman
font.bold=bold
font.height=高度
边框=xlwt .边框()#为样式创建边框
borders.left=2
borders.right=2
borders.top=0
边框。底部=2
对齐=xlwt .对齐()#设置排列
if align==center :
alignment.horz=xlwt .对齐。水平中心
alignment.vert=xlwt .对齐垂直中心
否则:
alignment.horz=xlwt .对齐。水平左对齐
alignment.vert=xlwt .对齐。垂直_底部
style.font=font
style.borders=边框
风格。数字格式字符串=格式字符串
style.alignment=对齐
返回样式
wb=xlwt .工作簿()
ws=wb.add_sheet(联系人,cell_overwrite_ok=True) #增加表
rows=[机构名称, 姓名, 部门, 电话, 入职日期, 手机, 邮箱]
col1=[王1, 王2, 王3]
col2=[666 , 777 , 888]
col3=[2014-08-09 , 2014-08-11 , 2015-08-09]
# 写第一行数据
ws.write_merge(
0,
0,
0,
6,
联系人表,
set_style(
《新罗马时报》,
320,
粗体=真,
format_str=)) #合并单元格
styleOK=xlwt.easyxf()
模式=xlwt .模式()#一个实例化的样式类
模式。模式=xlwt .模式。实体_模式#固定的样式
模式。pattern _ fore _ colour=xlwt .Style.colour_map[黄色] #背景颜色
边框=xlwt .边框()#为样式创建边框
borders.left=2
borders.right=2
borders.top=6
边框。底部=2
font=xlwt .字体()#为样式创建字体
font.name=Times New Roman
font.bold=True
font.height=220
styleOK.pattern=模式
styleOK.borders=borders
styleOK.font=font
# 写第二行数据
对于索引,枚举中的值(行):
ws.col(索引)。宽度=150 * 30 #定义列宽
ws.write(1,索引,值,
# 写第3行-6行第一列数据
ws.write_merge(
2,
2透镜(列1)-1,
0,
0,
x机构,
set_style(
《新罗马时报》,
320,
粗体=真,
format_str=)) #合并单元格
# 从第3行开始写一列数据
对于索引,枚举中的值(列1):
ws.col(1).宽度=150 * 30 #定义列宽
ws.write(索引2,1,瓦尔,“新罗马时代”,
200,
粗体=假,
format_str= ,align= ))
# 从第3行开始写四列数据
对于索引,枚举中的值(列2):
ws.col(3).宽度=150 * 30 #定义列宽
ws.write(索引2,3,瓦尔,“新罗马时代”,
200,
粗体=假,
format_str= ,align= ))
# 从第3行开始写5列数据
对于索引,枚举中的值(第3列):
ws.col(4).宽度=150 * 30 #定义列宽
ws.write(索引2,4,瓦尔,“新罗马时代”,
200,
粗体=假,
format_str= ,align= ))
ws.write(4,2,技术部,ws.write(4,5, 186777233 ,ws.write(4,6, 1王@166.com ,wb.save(test.xls) #保存电子表格文档
去期待陌生,去拥抱惊喜。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。