python的Excel模块xlrd, xlwt

本文链接:https://blog.csdn.net/loner_fang/article/details/80624744
一、python处理excel的模块
xlrd:读取excel文件数据
xlsxwriter/xlwt:写excel文件
安装xlrd与xlsxwriter模块:pip install xlrd/xlsxwriter
二、xlrd模块处理
(1)打开excel文件:
xl=xlrd.open_workbook(r”C:\DATA\test\selenium_test\login_module\userinfo.xls”)
(2)获得工作表:
①通过索引获取工作表
table = xl.sheets()[0]
②通过工作表名称
table=xl.sheet_by_name(“Sheet1”)
③通过工作表索引(与方法①类似)
table=xl.sheet_by_index(0)
(3)获取工作表的行数和列数
rows = table.nrows
cols = table.ncols
(4)获取工作表的行/列内容
row_values = table.row_values(0) # 获取第一行的内容,得到的是一个列表
col_values = table.col_values(0) # 获取第一列整列内容,得到的是一个列表
(5)对工作表的行进行操作
for row in range(table.nrows):
rowValueList = table.row_values(row)
print rowValueList
(6)数值类转换成string
在excel中,数字是会被默认当做float类型的,因此在读取的时候如果不进行处理就会带上小数点。处理方式如下:
def int_to_string(self,val):
if isinstance(val,float):
val = str(int(val))
return val
先转换成int,再转换成str类型。
使用时调用该函数即可。
疑问?使用xlrd模块处理excel后是否需要close?在网上没有找到相关资料,应该是不用close的,原理是什么不明白。。
完整的读取excel文件内容实例
import xlrd
file = xlrd.open_workbook(r’C:\DATA\test\selenium_test\test_python\user_data.xls’,’r’)
sheet = file.sheet_by_name(‘Sheet1′)
title_list = sheet.row_values(0)
user_list = []
for row in range(1,sheet.nrows):
content = sheet.row_values(row)
zip_object = zip(title_list,content)
content_dict = dict(zip_object)
user_list.append(content_dict)
print(user_list)
二、xlsxwriter模块处理
(1)生成excel文件
xl = xlsxwriter.Workbook(r’C:\\DATA\\test.xls’)
(2)生成工作表
table = xl.add_worksheet(‘sheet1′)
(3)写入数据
table.write_string(0,0,’uname’)
table.write_string(0,1,’pwd’)
(4)调整列宽
table.set_column(‘A:B’,30)
(5)带样式写入
style = xl.add_format({‘bg_color’: ‘red’}) # 添加背景色红色
table.write_string(row,col,val,style)
具体代码如下:
完整的写入excel文件内容的实例
import xlsxwriter
file2 = xlsxwriter.Workbook(r’C:\DATA\test\selenium_test\test_python\user_data2.xls’)
sheet_two = file2.add_worksheet(‘newSheet1’)
data_list = [{‘name’:’zxf’,’pwd’:’123′},{‘name’:’jzz’,’pwd’:’456′},{‘name’:’nsf’,’pwd’:’789′}]
row = 0
for data in data_list:
col = 0
style = ”
if data[‘name’]==’zxf’:
style=file2.add_format({‘bg_color’:’red’}) # 如果满足某一条件则添加一个特殊的红色背景样式
for val in data.values():
sheet_two.write_string(row,col,val,style)
col+=1
row+=1
学习自动化测试的数据分离,导入用户数据和导出测试报告。学习到的以上内容。
————————————————
版权声明:本文为CSDN博主「蒲公英上的尘埃」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/loner_fang/article/details/80624744