openpyxl 应用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件。主要应用两个模块 Workbook、load_workbook。
load_workbook模块
load_workbook模块用于读取现有xlsx文件,其返还为一个workbook 对象。应用方法为
from openpyxl import load_workbook
wb = load_workbook('文件名')
wb = load_workbook('文件名') 和 wb= Workbook() 作用类似,区别在于load_workbook 用于打开已存在的excel文件,而 Workbook则新建一个excel文件。
Workbook模块
Workbook模块是openpyxl 的核心模块,对excel表格的操作均集中在此模块内。下面一段代码为打开encoding_book.xlsx表格,并在表格中encoding test sheet中按行写入数据。
def TxtoExcel():
file_name_list= [x for x in range(len(ip_id))]
global __TEST_RSSI
dest_filename = 'encoding_book.xlsx'
""""用于将测试数据写入excel表格"""
#打开excel文件
wb = load_workbook(dest_filename)
#获取sheet名称为"encoding test"sheet
ws1 = wb.get_sheet_by_name("encoding test")
#将ws1设置为当前活动表格
wb.active = ws1
#获取有内容的最后行号
# row_max = ws1.max_row
# ws1 = wb.active
# ws1 = wb.create_sheet(title=__TEST_RSSI)
# wb.active = ws1
# grab the active worksheet
# ws1 = wb.active
# ws1.title = __TEST_RSSI
for (key,item) in ip_id.items():
file_name = "{}.txt".format(key)
file_name_list[(int(item)-1)] = file_name
result_1 = get_result_line(file_name_list[0])
result_2 = get_result_line(file_name_list[1])
result_3 = get_result_line(file_name_list[2])
result_4 = get_result_line(file_name_list[3])
for (key,item) in result_1.items():
ws1.append(['',''])
ws1.append(fist_row)
ws1.append(item)
ws1.append(result_2[key])
ws1.append(result_3[key])
ws1.append(result_4[key])
wb.save(filename = dest_filename)
wb.close()