python处理excel的模块

一、python处理excel的模块

xlrd:读取excel文件数据

xlsxwriter/xlwd:写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

学习自动化测试的数据分离,导入用户数据和导出测试报告。学习到的以上内容。

猜你喜欢

转载自blog.csdn.net/loner_fang/article/details/80624744