在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/。


代码在这里:
ekzemplaro/django_xlsx_update