关于这里只把示例部分的url.py view.py html模板部分
url.py
from django.conf.urls import include, urlfrom django.contrib import adminfrom mysites.views import index, upload_file, report_down_loadurlpatterns = [ # Examples: # url(r'^$', 'untitled1.views.home', name='home'), # url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)), url(r'^index/$', index), url(r'^upload_file/$', upload_file), url(r'^report_down_load/$', report_down_load),]
view.py
from django.http import HttpResponsefrom django.shortcuts import render, render_to_responseimport osimport xlrd# Create your views here.from django.template import RequestContextfrom django.views.decorators.csrf import csrf_exemptdef index(request): return render_to_response("index.html", '', context_instance=RequestContext(request))@csrf_exemptdef upload_file(request): if request.method == 'POST': myFile = request.FILES.get('myfile', None) if not myFile: return HttpResponse('no file for upload') excelFile = open(os.path.join('/Users/eruake/Desktop/code/hkwork/untitled1/', myFile.name), 'wb+') for chunk in myFile.chunks(): excelFile.write(chunk) excelFile.close() # excel = xlrd.open_workbook('/Users/eruake/Desktop/code/hkwork/untitled1/'+myFile.name) sheet = excel.sheet_by_index(0) # sheet = excel.sheet_by_name('mywork') nrows = sheet.nrows for i in range(nrows): # get value you can save to database v = sheet.cell(0, 0).value return HttpResponse('upload over!')import xlwtimport django.utils.timezone as timezone@csrf_exemptdef report_down_load(request): wb = xlwt.Workbook() sheet = wb.add_sheet('report') filename = timezone.now().strftime("%Y%m%d %H%M%S") + '.xls' # # set data # and set xls file style 这里要说明一点的时,我们可以设置excel模板的样式,可以通过xlrd先读取,再使用xlutils.copy # 来实现写,但是由于xlutils是不能读取复制样式,如背景颜色 字体样式等 所以我建议直接使用xlwt来控制样式 response = HttpResponse(content_type='application/vnd.ms-excel') response['Content-Disposition'] = 'attachment; filename=' + filename wb.save(response) return response
template 里的index.html
Title
------------------------