牛人博客传送门python
操做excelapp
from openpyxl import Workbook """ 犯得错: 必须全部写完后再关闭 """ # write wb = Workbook() ws = wb.create_sheet('first', 0) # 获取excel文件的全部sheet以列表返回 sheet_list = wb.sheetnames # 获取excel中每一个sheet for i in wb: print(i) # 直接获取指定sheet对象 sheet1 = wb['first'] # 指定单元格写入数据 sheet1['a1'] = '姓名' sheet1['b1'] = '年龄' # 或者经过cell函数来实现 sheet1.cell(row=2, column=1, value='xxx') sheet1.cell(row=2, column=2, value='30') sheet2 = wb.create_sheet('第二个表格', 1) # 若是行内有内容,从下一行空白行开始写入 # 一次添加1行写入 row = range(1, 6) sheet2.append(row) # 一次添加多行 rows = [ ['姓名', '年龄', '性别'], ['sun', '30', 'male'], ['xiu', '30', 'male'], ['wen', '30', 'male'], ] for i in rows: sheet2.append(i) wb.save('manage.xlsx')
# 获取有效的【写入内容】最大行和列 print(sheet2.rows) # 全部有效行<generator object Worksheet._cells_by_row at 0x000001CA5A275888> print(sheet2.columns) # <generator object Worksheet._cells_by_col at 0x0000026B99345888> print(sheet2.max_row) # 5 print(sheet2.max_column) # 5 # 获取每一行数据 for row in sheet2.rows: for val in row: print(val.value) # 获取某一行数据 for cell in list(sheet2.rows)[0]: # 第一行数据 print(cell.value) wb.save('manage.xlsx')
from openpyxl import load_workbook wb = load_workbook(filename='manage.xlsx', read_only=False, data_only=True) # data_only = True 表示单元格的值是由公式计算的,返回的是值,而不是公式 sheets = wb.sheetnames # 获取excel文件中全部的sheet名列表 print(sheets) sheet = wb['first'] # 指定某个sheet表格 # 获取内容 val = sheet['a1'].value print(val) # 赋值 sheet['b2'] = 30 sheet.title = '我改变了sheet名' wb.save('manage.xlsx')