导入第三方库
# 第三方库 安装方式:cmd-->pip install xlrd
pip install xlrd
pip install xlwt
pip install xlutils
Xlrd库读取Excel
import xlrd
# 1-读取excel测试用例
excelDir = r'E:\test.xls'
# 打开Excel
work_book = xlrd.open_workbook(excelDir)
# 查看所有的子表名
print('所有子表名:', work_book.sheet_names()) # 返回的是list列表 ['Sheet1', 'Sheet2', 'Sheet3']
#获取表,两种方法,一种是通过索引,一种是通过表名。
sheet1 = work_book.sheet_names()[0] # 通过索引获取
sheet1 = work_book.sheet_by_name('Sheet1') # 通过sheet表名获取
# 获取Excel中所有的行数
print('获取Excel中所有的行数:', sheet1.nrows)
# 获取Excel中所有的列数
print('获取Excel中所有的列数:', sheet1.ncols)
# 循环获取第一列的数据
print('循环获取第一列的数据:')
for i in range(1,sheet1.nrows):
print(sheet1.cell(i, 0)) #xlrd类型的
print(sheet1.cell(i, 0).value) #通过value获取值
# 循环获取每一行的数据
print('循环获取第一列的数据:')
for i in range(1, sheet1.nrows):
print(sheet1.row_values(i)) #结果是list列表类型
获取具体单元格方法
#获取整行的值,以列表形式返回
row_value = ws.row_values(3)
print('第四行数据为:',row_value)
#获取整列的值,以列表形式返回
row_col = ws.col_values(3)
print('D列的数据为:',row_col)
#获取所有的lie
nrows = ws.nrows
ncols = ws.ncols
print('总行数为:',nrows,'总列数为:',ncols)
#获取某个单元格内容cell(行,列)
cell_F3 = ws.cell(2,5).value
print('F3单元格内容为:',cell_F3)
#使用行列索引获取某个单元格的内容
row_F3 = ws.row(2)[5].value
col_F3 = ws.col(5)[2].value
print('F3单元格的内容为:',row_F3, '\n' 'F3单元格的内容为:',col_F3)
xlwt写入Execl表格数据
import xlwt
#新建一个Excel文件
wb = xlwt.Workbook()
#在新建的文件中新建一个名为Sheet1的工作簿
ws = wb.add_sheet(‘Sheet1’,cell_overwrite_ok=True)
#添加表单页
#方法一:
ws.write(0, 0, '手机号')
ws.write(0, 1, '归属地')
ws.write(0,2,'运营商')
ws.write(0, 3, '城市区号')
ws.write(0, 4, '行政区划代码')
#方法二:
value_title = ["姓名", "性别", "年龄", "城市", "职业"]
for i in range(0, len(value_title)):
ws.write(0, i, value_title[i])
#写入数据we.write(行,列,内容)
for i in range(1,7):
for k in range(5):
ws.write(i,k,i+k)
xlutils将内容追加到表格内:
import xlwt
import xlrd
from xlutils.copy import copy
path = "text1.xls" # 打开文件
index = len(value) # 获取需要写入数据的行数
workbook = xlrd.open_workbook(path) # 打开工作簿
sheets = workbook.sheet_names() # 获取工作簿中的所有表格
worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格
rows_old = worksheet.nrows # 获取表格中已存在的数据的行数
new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象
new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个表格
for i in range(0, index):
for j in range(0, len(value[i])):
new_worksheet.write(i+rows_old, j, value[i][j]) # 追加写入数据,注意是从i+rows_old行开始写入
new_workbook.save(path) # 保存工作簿
示例:
import xlrd
import xlwt
from xlutils.copy import copy
def write_excel_xls(path, sheet_name, value):
index = len(value) # 获取需要写入数据的行数
workbook = xlwt.Workbook() # 新建一个工作簿
sheet = workbook.add_sheet(sheet_name) # 在工作簿中新建一个表格
for i in range(0, index):
for j in range(0, len(value[i])):
sheet.write(i, j, value[i][j]) # 像表格中写入数据(对应的行和列)
workbook.save(path) # 保存工作簿
print("xls格式表格写入数据成功!")
def write_excel_xls_append(path, value):
index = len(value) # 获取需要写入数据的行数
workbook = xlrd.open_workbook(path) # 打开工作簿
sheets = workbook.sheet_names() # 获取工作簿中的所有表格
worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格
rows_old = worksheet.nrows # 获取表格中已存在的数据的行数
new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象
new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个表格
for i in range(0, index):
for j in range(0, len(value[i])):
new_worksheet.write(i+rows_old, j, value[i][j]) # 追加写入数据,注意是从i+rows_old行开始写入
new_workbook.save(path) # 保存工作簿
print("xls格式表格【追加】写入数据成功!")
def read_excel_xls(path):
workbook = xlrd.open_workbook(path) # 打开工作簿
sheets = workbook.sheet_names() # 获取工作簿中的所有表格
worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格
for i in range(0, worksheet.nrows):
for j in range(0, worksheet.ncols):
print(worksheet.cell_value(i, j), "\t", end="") # 逐行逐列读取数据
print()
book_name_xls = 'xls格式测试工作簿.xls'
sheet_name_xls = 'xls格式测试表'
value_title = [["姓名", "性别", "年龄", "城市", "职业"],]
value1 = [["张三", "男", "19", "杭州", "研发工程师"],
["李四", "男", "22", "北京", "医生"],
["王五", "女", "33", "珠海", "出租车司机"],]
value2 = [["Tom", "男", "21", "西安", "测试工程师"],
["Jones", "女", "34", "上海", "产品经理"],
["Cat", "女", "56", "上海", "教师"],]
write_excel_xls(book_name_xls, sheet_name_xls, value_title)
write_excel_xls_append(book_name_xls, value1)
write_excel_xls_append(book_name_xls, value2)
read_excel_xls(book_name_xls)
参考文章:https://blog.csdn.net/u013250071/article/details/81911434