python3.x版本使用xlwt, xlrd, xlsxwriter处理简单的Excel问题

简单玩了下,简单写下!!

python3.x版本操作Excel部分模块介绍:

import xlrd, xlwt
import xlsxwriter

1,xlrd模块:读取已有的Excel表(.xls/.xlsx)。读取数据量未测试,基本没问题。操作方法:

wb = xlrd.open_workbook('D:\\myfile\\data\\data1.xlsx')  # 打开指定路径的EXCEL表。

2,xlwt模块:写入新建Excel表(.xls/.xlsx)。读取数据量为65000左右, 256列。操作方法:

book = xlwt.Workbook(encoding='utf-8')  # 新建工作表对象。
sheet = book.add_sheet('sheet_test', cell_overwrite_ok=True)  # 在EXCEL中添加sheet_test工作表, 
其中cell_overwrite_ok=True,表示在执行写入过程中,该工作表可以修改已写的数据。
book.save('D:\\myfile\\data\\ndata1.xls')  # 保存数据到指定路径的Excel表。

3,xlsxwriter模块:写入新建Excel表(.xls/.xlsx)。暂未发现数据量限制,建议使用。操作方法:

book = xlsxwriter.Workbook('D:\\myfile\\data\\n0728.xlsx')  # 创建写入工作表。
sheet = book.add_worksheet(sheet_name)  # 创建工作表对象,其中sheeet_name 工作表名。
book.close() # 关闭工作表。

4,其他操作指令:

wb.sheet_names()  # 所有工作表。
s = wb.sheet_by_name(name) # name是工作表名,s为name工作表对象。
s.ncols  # s工作表的总列数。
s.nrows  # s工作表的总行数。
s.cell_value(i, j)  # 获取i行,j列的指定格的数据。
sheet.write(i, j, s.cell_value(i, j))  # 工作表写入数据,其中i指行,j指列。
import xlrd, xlwt
import xlsxwriter

wb = xlrd.open_workbook('D:\\myfile\\data\\data1.xlsx')  # 打开指定路径的EXCEL表
wb1 = xlrd.open_workbook('D:\\myfile\\data\\data2.xlsx')  # 打开指定路径的EXCEL表
book = xlsxwriter.Workbook('D:\\myfile\\data\\n0728.xlsx')  # 创建写入工作表

s = wb.sheet_by_name(wb.sheet_names()[0])  # s为wb.sheet_names()的第一个工作表对象
my_dict = {}
AA = 10
BB = 10
CC = 10
for i in range(s.nrows):  # s.nrows为s工作表的总行数
    for j in range(s.ncols):
        if s.cell_value(i, j) == '房屋编号':
            AA = j
            BB = i
            # print(AA, BB)
        if s.cell_value(i, j) == '业主名称':
            CC = j
            # print(CC)
        if BB < i:
            my_dict[s.cell_value(i, AA)] = s.cell_value(i, CC)

for sheet_name in wb1.sheet_names():
    s = wb1.sheet_by_name(sheet_name)
    sheet = book.add_worksheet(sheet_name)
    AA = -1
    BB = -1
    CC = -1
    for i in range(s.nrows):  # s.nrows为s工作表的总行数
        for j in range(s.ncols):
            sheet.write(i, j, s.cell_value(i, j))
            if s.cell_value(i, j) == '房屋编号':
                AA = j
            if s.cell_value(i, j) == '客户名称':
                CC = j
            if s.cell_value(i, AA) in my_dict.keys():
                sheet.write(i, CC, my_dict[s.cell_value(i, AA)])
book.close()

 

 
 

 

你可能感兴趣的:(其他学习类)