ホームページ  >  記事  >  バックエンド開発  >  Djangoプラグインを使用してExcelをダウンロードする方法

Djangoプラグインを使用してExcelをダウンロードする方法

不言
不言転載
2018-09-30 13:34:172558ブラウズ

この記事の内容は、Django プラグインを使用して Excel をダウンロードする方法に関するものです。一定の参考価値があります。必要な友人は参考にしてください。お役に立てれば幸いです。

現在の情報のほとんどは、pandas または xlwt ライブラリを使用して実装されているためです。実際、django には対応するプラグイン django-excel があるため、それほど面倒ではありません。

このプラグインは、pyexcel ライブラリに依存して作成されています。ただし、pyexcel ライブラリは django-excel のインストール時に自動的にインストールされるため、特にインストールする必要はありません。 pyexcel は大規模なライブラリであり、django-excel を使用する場合は pyexcel の使用方法を考慮する必要がないため、ここではあまり紹介しません。ここでもう一つ言っておきたいのですが、pyexcelも非常に強力でデータの可視化を実現することができ、現在では今回紹介するdjango-excelのように、flaskやdjangoなどのWebフレームワークに対応したプラグインが開発されています。

django-excel は Excel ファイルのアップロードとダウンロードをサポートするプラグインで、Web ページ形式で Excel ファイルを表示したり、データベースにデータを保存したりできます。筆者はこのプラグインを初めて使用しており、現時点での開発要件はダウンロード機能のみであるため、この記事ではダウンロード機能のみを紹介します。 (注: ダウンロード機能を実装するために、デプロイされたサーバーに Office をインストールする必要はありません)

1. インストール

pip install django-excel

pyexcel-io と pyexcelインストール中に自動的にインストールされます pyexcel-webio

2. django

をサポートするバージョンは現在、バージョン django2.1.1 をサポートしています。したがって、最新バージョンの django を使用している開発者は、それをサポートしているため心配する必要はありません。

3. ダウンロードの実装

プラグインは、多くのデータ形式、配列 (2 次元配列)、辞書、データベース テーブル (単一または複数)、Django の ORM クエリ結果 (クエリ sqt) をサポートしています。 ) 等々。生成できるファイルの種類: csv、tsv、csvz、tsvz、xls、xlsx、xlsm、ods。

##Python#pyexcel-io##pyexcel-xlsopenpyxl##odsods

#パッケージ名

サポートされるファイル形式

#依存関係

バージョン

##csv、csvz、tsv、tsvz


2.6、2.7、3.3、3.4、3.5、3.6pypy

xls、xlsx(読み取り専用)、xlsm(読み取り専用)

#xlrd

xlwt

同上

pyexcel-xlsx
##xlsx

上と同じ

pyexcel-ods3

#pyexcel-ezozdf、lxml

2.6、2.7、3.3、3.4 3.5、3.6

pyexcel-ods

odfpy## ##########同上###############

上の表は、対応するものを生成するために必要なインストールです。ファイル形式 バッグ。

2 次元配列を使用して Excel ファイルを生成する場合は、 django_excel.make_response_from_array (2 次元配列名、生成されたファイル タイプ、ステータス = 200) を返す必要があります。 2 次元配列の各行は、Excel の対応する行を表します。

辞書を使用して Excel ファイルを生成する場合は、 django_excel.make_response_from_dict(辞書名、ファイル タイプ、status=200) を返す必要があります。キー名は列名で、キー値はデータです。

データベース テーブル (シート) を使用して Excel ファイルを生成する場合は、 django_excel.make_response_from_a_table(テーブル名、ファイル タイプ、 status=200)

を返す必要があります。

データベーステーブル (複数のテーブル) を使用して Excel ファイルを生成したい場合は、 django_excel.make_response_from_tables(テーブル名リスト、ファイルタイプステータス=200) を返す必要があります。

クエリセットを使用したい場合Excelファイルを生成するには、django_excel.make_response_from_query_sets(クエリセット名、対応する必須フィールド(リストタイプ)、ファイルタイプ、ステータス=200)を返す必要があります。必須の列に対応するフィールドのリスト内の順序は Excel の列名の順序であり、リスト内の要素はモデル内の変数名である必要があります。

すべての関数の共通パラメータには、file_name とsheet_name が含まれます。これらは、それぞれファイル名と Excel ワークブック名​​です。

データベース テーブルであってもクエリ セットであっても、外部キーを含めることはできないことに注意してください。外部キーを含めるとエラーが報告され、ダウンロードは ajax リクエストではなくページ ジャンプによってのみ実行できます。それ以外の場合は、ダウンロードされないこと。

例:

models.py

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

views.py

import django_excel as excel
def download_excel(request):
    data_excel =django_test_1.objects.all()
    column_names = ["abc"]
    return excel.make_response_from_query_sets(data_excel,column_names, "xlsx",status = 200 ,sheet_name='测试',file_name='测试文件')

以上がDjangoプラグインを使用してExcelをダウンロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。