Я использовал код, подготовленный в https://www.pythoncircle.com/, чтобы импортировать и экспортировать файл Excel, используя Django. Этот код представлен ниже:
from Django.shortcuts import render
import openpyxl
views.py file:
def index(request):
if "GET" == request.method:
return render(request, 'myapp/index.html', {})
else:
excel_file = request.FILES["excel_file"]
wb = openpyxl.load_workbook(excel_file)
worksheet = wb["Sheet1"]
print(worksheet)
excel_data = list()
for row in worksheet.iter_rows():
row_data = list()
for cell in row:
row_data.append(str(cell.value))
excel_data.append(row_data)
return render(request, 'myapp/index.html', {"excel_data":excel_data})
import xlwt
from django.http import HttpResponse
def download_excel_data(request):
response = HttpResponse(content_type='application/ms-excel')
response['Content-Disposition'] = 'attachment; filename="ThePythonDjango.xls"'
wb = xlwt.Workbook(encoding='utf-8')
ws = wb.add_sheet("sheet1")
row_num = 0
font_style = xlwt.XFStyle()
font_style.font.bold = True
columns = ['Column 1', 'Column 2', 'Column 3', 'Column 4', ]
for col_num in range(len(columns)):
ws.write(row_num, col_num, columns[col_num], font_style)
# Sheet body, remaining rows
font_style = xlwt.XFStyle()
wb.save(response)
return response
urls.py file:
from django.urls import path
from django.http import HttpResponse
from . import views
app_name = "myapp"
urlpatterns = [
path('', views.index, name='index'),
path('', views.download_excel_data, name='download_excel_data'),
]
Когда я запускаю описанный код, выполняется только функция индекса. в то время как при изменении urlpatterns на: urlpatterns = [
path('', views.download_excel_data, name='download_excel_data'),
path('', views.index, name='index'),
]
выполняется функция download_excel_data. Как я могу выполнить обе функции соответственно? Заранее спасибо