xlrd和xlwt模块主要是针对excel表格的读取和写入,但是一些操作和处理数据的操作还是需要根据xlutils这个模块来实现。
| import xlrd |
| from xlutils.copy import copy |
| |
| workbook = xlrd.open_workbook('test.xlsx') |
| new_workbook = copy(workbook) |
| new_workbook.save('new_test.xlsx') |
| workbook = xlrd.open_workbook('test.xlsx') |
| sheets = workbook.sheet_names() |
| worksheet = workbook.sheet_by_name(sheets[0]) |
| rows_old = worksheet.nrows |
| print(sheets, sheets[0], worksheet, worksheet.nrows) |
| workbook = xlrd.open_workbook('test.xlsx') |
| new_workbook = copy(workbook) |
| new_worksheet = new_workbook.get_sheet(0) |
| print(new_worksheet, new_workbook, new_worksheet.name) |
| |
| old_excel = xlrd.open_workbook('test.xlsx', formatting_info=True) |
| |
| new_excel = copy(old_excel) |
| |
| ws = new_excel.get_sheet(0) |
| |
| ws.write(0, 0, '第一行,第一列') |
| ws.write(0, 1, '第一行,第二列') |
| ws.write(0, 2, '第一行,第三列') |
| ws.write(1, 0, '第二行,第一列') |
| ws.write(1, 1, '第二行,第二列') |
| ws.write(1, 2, '第二行,第三列') |
| |
| new_excel.save('new_test_1.xlsx') |
| workbook = xlrd.open_workbook('test.xlsx') |
| Data_sheet = workbook.sheets()[0] |
| row1 = Data_sheet.row_values(0) |
| dic_col_s = {str(i): row1[i] for i in |
| range(0, len(row1))} |
| col2 = Data_sheet.col_values(0) |
| dic_row_s = {str(i): col2[i] for i in |
| range(0, len(col2))} |
| mtitle = "gender" |
| mname = "tank" |
| rindex = "".join([i for i in dic_row_s if dic_row_s[i] == mname]) |
| cindex = "".join([i for i in dic_col_s if dic_col_s[i] == mtitle]) |
| |
| print(f"rindex:{rindex},cindex:{cindex}") |
| |
| ---------------------------------执行结果------------------------------------- |
| {'0': 'name', '1': 'class', '2': 'cid', '3': 'gender'} |
| {'0': 'name', '1': 'sean', '2': 'tank', '3': 'jason'} |
| rindex:2,cindex:3 |