xlwt教程地址 ----_<_>_----
概述
Openpyxl是python中簡單易用的操作excel電子表格的一個模塊。接下來呢,跟博主一起學習一下吧 ----_<_>_----
首先先清楚一些excel的基本概念:
在openpyxl中,主要用到三個概念:Workbooks,Sheets,Cells。Workbook就是一個excel工作表;Sheet是工作表中的一張表頁;Cell就是簡單的一個格。openpyxl就是圍繞着這三個概念進行的,不管讀寫都是“三板斧”:打開Workbook,定位Sheet,操作Cell。
總結:
- workbooks是excel一個工作表,一個工作表包含多個頁,即包含多個sheet
- sheet是excel當中的一頁,一個工作頁包含多個表格,即包含多個cell
- cell是excel當中的一個工作表格
安裝
pip install openpyxl
接下來就介紹一下簡單的操作
# -*- coding:utf-8 -*- # 導入 from openpyxl import workbook from openpyxl import load_workbook # 打開一個供作薄 wb = load_workbook('file_name.xlsx') # 獲取一張表 sheet = wb.get_sheet_by_name("Sheet1") # 獲取A1格的值 print sheet['A1'].value # 獲取表的最大工作行數 print sheet.max_row # 獲取表的最大工作列數 print sheet.max_column # 打印C列的所有內容(以下格式代表不換行) for i in sheet["C"]: print i.value, ' ', print '' # 打印1行的所有內容 for i in sheet["1"]: print i.value, ' ', print ''
注意:當讀到的內容為None時說明該表格中的內容為空
接下來呢新創建一個新的工作薄
# -*- coding:utf-8 -*- from openpyxl import Workbook # 創建一個工作薄 wb = Workbook() # 創建一個工作表(注意是一個屬性) sheet = wb.active # excel創建的工作表名默認為sheet1,一下代碼實現了給新創建的工作表創建一個新的名字 sheet.title = 'create_sheet' # 向工作表中輸入內容 sheet['C3'] = 'hello word' for i in range(10): sheet['A%d' % (i+1)] = i+1 # 向excel表中輸入表達試 sheet['C2'] = '=SUM(A:A)' # 保存一個文檔 wb.save('create_excel.xlsx') if __name__ == '__main__': pass
保存之后會出現一下樣式
django中從服務端彈到瀏覽器段的方法
思想:將信息保存到字符串緩沖區,然后指定返回到客戶端的格式為excel格式即可
代碼:
from openpyxl import load_workbook wb = load_workbook('file_name.xlsx') from io import BytesIO output = BytesIO() sheet = wb[wb.get_sheet_names()[0]] # 獲取第一個工作區 sheet['A3'] = 'kayb' wb.save(output) # 將wb文件保存到緩存區中 response = HttpResponse(content_type='application/vnd.ms-excel') response['Content-Disposition'] = 'attachment;filename={0}.xlsx'.format(‘file_name’) response.write(output.getvalue()) # 獲取緩沖區當中的值 return response