官方实例:
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active #调用得到正在运行的工作表,该函数调用工作表的索引(_active_sheet_index),默认是0。
# ws = wb.create_sheet() #新建一张表
ws.title = '一个新的表格'
ws['A1'] = 'Test'
ws.append(['1','2','3','4','5'])
wb.save('test.xlsx')
一.创建一个工作簿
1.引入Workbook类,然后进行实例化:
from openpyxl import Workbook
wb = Workbook()
2.一个工作簿(workbook)在创建的时候同时至少也新建了一张工作表(worksheet)
Workbook.active()调用得到正在运行的工作表
该函数调用工作表的索引(_active_sheet_index),默认是0。
除非修改了这个值,否则使用该函数一直是在对第一张工作表进行操作,
而第一张表的默认表名是"Sheet"
可以通过:ws.title = Sheet_name 修改默认的表名。
3.使用Workbook.create_sheet()新建一张表
ws1 = wb.create_sheet() --> 默认插在工作簿末尾
ws2 = wb.create_sheet(0) --> 插入在工作簿的第一个位置
4.在创建工作表的时候系统自动命名。他们按照序列依次命名 (Sheet, Sheet1, Sheet2, …)
5.一旦获取工作表的名字,可以通过workbook的key或者Workbook.get_sheet_by_name()方法得到该工作表
ws3 = wb[“New Title”]
ws3 = wb.get_sheet_by_name(“New Title”)
也可以通过Workbook.get_sheet_names()方法得到工作簿的所有工作表。
二、对单元格的基本操作
1.单元格可以直接根据他们的索引直接获得: c = ws[‘A4’]
通过上述的语句,将返回在A4处的单元格,如果不存在将在A4新建一个
2.单元格的值也可以直接赋值:ws[‘A4’] = 4
3.使用Worksheet.cell()方法获取单元格: c = ws.cell(‘A4’)
4.根据行列值获取单元格:d = ws.cell(row = 4, column = 2)
5.使用切片获取多个单元格:cell_range = ws[‘A1’:‘C2’]
6.使用Worksheet.iter_rows()方法获得多个单元格
7.将工作表转换为Dataframe,如果工作表没有标题或索引:df = DataFrame(ws.values)
三、保存和导入文件
1.保存文件 : Workbook.save()
2.导入文件 : openpyxl.load_workbook()
向前端传输数据:
response = HttpResponse(content_type='application/vnd.ms-excel')
response['Content-Disposition'] = 'attachment;filename=' + 'RebatePool' + '.xls'
response.write(file)
return response