在Django中更新并下载xlsx文件

我在Arch Linux上尝试了与这篇文章相似的事情。
使用Python + Django来下载Excel文件。

我已经将模板 cities.xlsx 放置在 /var/tmp/xlsx 中。工作表的名称为 Cities。

1) 创建项目和应用程序

项目 proj01
应用程序 excelapp1

django-admin startproject proj01
cd proj01/
python manage.py startapp excelapp1

2) 创建 excelapp1/urls.py

from django.urls import path
from . import views

app_name = 'excelapp1'
urlpatterns = [
    path('', views.index, name='index'),
]

3) 编辑excelapp1/views.py

from django.shortcuts import render

import os
import openpyxl
import pprint
from django.http import HttpResponse

def index(request):
    """
      Excel output from template
    """
    # Excelのテンプレートファイルの読み込み
    wb = openpyxl.load_workbook('/var/tmp/xlsx/cities.xlsx')

    sheet = wb['Cities']
    sheet['C4'] = '99999'
    sheet['D4'] = '2019-1-20'

# Excelを返すためにcontent_typeに「application/vnd.ms-excel」をセットします。

    response = HttpResponse(content_type='application/vnd.ms-excel')
    response['Content-Disposition'] = 'attachment; filename=%s' % 'report.xlsx'

    # データの書き込みを行なったExcelファイルを保存する
    wb.save(response)

    # 生成したHttpResponseをreturnする
    return response

4) 编辑 proj01/settings.py

省略
INSTALLED_APPS = [
    'excelapp1',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
省略

5)编辑 proj01/urls.py 文件

from django.contrib import admin
from django.urls import path
from django.urls import include

urlpatterns = [
    path('excelapp1/', include('excelapp1.urls')),
    path('admin/', admin.site.urls),
]

6) 启动开发服务器

python manage.py runserver

在浏览器中访问http://127.0.0.1:8000/excelapp1/。

xlsx_jan2001.png
xlsx_jan2002.png

代码在这里:
ekzemplaro/django_xlsx_update

bannerAds