この記事の内容は、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 をインストールする必要はありません)
pip install django-excel
pyexcel-io と pyexcelインストール中に自動的にインストールされます pyexcel-webio
をサポートするバージョンは現在、バージョン django2.1.1 をサポートしています。したがって、最新バージョンの django を使用している開発者は、それをサポートしているため心配する必要はありません。
プラグインは、多くのデータ形式、配列 (2 次元配列)、辞書、データベース テーブル (単一または複数)、Django の ORM クエリ結果 (クエリ sqt) をサポートしています。 ) 等々。生成できるファイルの種類: csv、tsv、csvz、tsvz、xls、xlsx、xlsm、ods。
#パッケージ名 |
サポートされるファイル形式 |
#依存関係
| ##Pythonバージョン |
##csv、csvz、tsv、tsvz |
|
2.6、2.7、3.3、3.4、3.5、3.6pypy |
| ##pyexcel-xls
xls、xlsx(読み取り専用)、xlsm(読み取り専用) |
#xlrd 、 xlwt |
同上 |
pyexcel-xlsx |
##xlsx
| openpyxl上と同じ
|
pyexcel-ods3 | |
#pyexcel-ezozdf、lxml |
2.6、2.7、3.3、3.4 3.5、3.6 |
pyexcel-ods |
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 サイトの他の関連記事を参照してください。