日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

django下载excel,使用django-excel插件

發布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django下载excel,使用django-excel插件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

django下載Excel,使用django-excel插件

  由于目前的資料多是使用pandas或xlwt庫實現的。其實沒有那么的麻煩,因為django有相對應的插件django-excel。

  該插件是依賴于pyexcel庫寫的。不過,不用專門安裝pyexcel庫,因為在安裝django-excel時會自動將pyexcel裝上。由于pyexcel是一個大庫,且在使用django-excel時不用考慮pyexcel的使用方法,所以就不再此介紹太多了。在此,還是要多說一句,pyexcel的功能也是很強大的,可以實現數據的可視化,目前已開發出了與flask、django等web框架的對應插件,比如今天介紹的django-excel。

  django-excel是一款支持上傳和下載excel文件的插件,并可以將excel文件以網頁的形式展現出來,也可以將數據存入數據庫。由于,筆者也是剛接觸該插件,而且開發需求目前僅為下載功能,所以本篇只介紹其下載的功能。(注:實現下載功能,部署的服務器無需安裝office)

1、 安裝

  pip install django-excel

  安裝時會自動安裝pyexcel-io、pyexcel、pyexcel-webio

2、 支持django的版本

  目前已支持到django2.1.1版本。所以,使用目前django最新版的開發者也不用擔心了,因為它支持。

3、 實現下載

  該插件支持的數據格式很多,array(二維數組)、字典、數據庫的表(單張或多張)、django的ORM查詢結果(query sqt)等等。可以生成的文件類型:csv、tsv、csvz、tsvz、xls、xlsx、xlsm、ods。

包名

支持的文件格式

依賴

Python版本

pyexcel-io

csv, csvz?, tsv, tsvz?

?

2.6, 2.7, 3.3, 3.4, 3.5, 3.6 pypy

pyexcel-xls

xls, xlsx(只讀), xlsm(只讀)

xlrd,?xlwt

同上

pyexcel-xlsx

xlsx

openpyxl

同上

pyexcel-ods3

ods

pyexcel-ezodf, lxml

2.6, 2.7, 3.3, 3.4 3.5, 3.6

pyexcel-ods

ods

odfpy

同上

?

?

?

?

?

?

?

?

?

上表是生成對應文件格式所需安裝的包。

  如果是要使用二維數組生成excel文件,則需return django_excel.make_response_from_array(二維數組名,?生成的文件類型,?status=200)。二維數組每一行代表Excel中相應的行。

  如果想要使用字典生成excel文件,則需return django_excel.make_response_from_dict(字典名,?文件類型,?status=200)。鍵名為列名,鍵值為數據。

  如果想要使用數據庫的表(單張)生成excel文件,則需return django_excel.make_response_from_a_table(表名,?文件類型, status=200)

  如果想要使用數據庫的表(多張)生成excel文件,則需return django_excel.make_response_from_tables(表名列表, 文件類型status=200)

  如果想要使用查詢集合生成excel文件,則需return django_excel.make_response_from_query_sets(查詢集合名, 所需列對應字段(列表類型),文件類型, status=200)。所需列對應字段的列表里的順序為Excel列名的順序,且列表里的元素必須為model里的變量名。

  所有函數的通用參數包含file_name 和sheet_name,分別為文件名和Excel的工作薄名。

  注意,不論是數據庫表還是查詢集合,都不能包含外鍵否則會報錯,而且只能通過頁面的跳轉實現下載,不能通過ajax請求,否則不會下載。

eg:

models.py

class django_test_1(models.Model):abc = models.CharField(max_length=20,db_column='測試')

?

views.py

1 import django_excel as excel 2 3 def download_excel(request): 4 5 data_excel =django_test_1.objects.all() 6 7 column_names = ["abc"] 8 9 return excel.make_response_from_query_sets(data_excel,column_names, "xlsx",status = 200 ,sheet_name='測試',file_name='測試文件')

?

以上僅為筆者目前的見解,沒有寫全。如果感興趣可以直接閱讀其官方文檔:http://django.pyexcel.org/en/latest/

轉載于:https://www.cnblogs.com/xshan/p/9727887.html

總結

以上是生活随笔為你收集整理的django下载excel,使用django-excel插件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。