django 导出Excel 参考示例

Html:

<form method="post" action="/company/project/exportexcel" style="  display: inline-block;">
                    {% csrf_token %}
                    <input type="hidden" name="export_option" value="some_value">
                    <button class="btn btn-sm btn-warning" type="submit" style="margin-bottom: 10px"><i
                            class="mdi mdi-export"></i>导出
                    </button>
                </form>

urls.py

path('exportexcel', views.exportexcel.as_view(), name='company-project-exportexcel'),

views.py:



class exportexcel(LoginRequiredMixin, BaseView):
    def post(self, request):

        projects = ProjectModel.objects.using('company').all()

        # 创建一个新的Excel工作簿
        wb = Workbook()
        ws = wb.active
        ws.title = "ProjectList"

        # 添加表头
        ws.append(["ID", "Code", "Project Name", "Company Name", "Curr
### 三级标题:如何在 Django导出 Excel 文件Django 应用中,可以通过编写自定义的管理模块功能来实现将数据库中的数据导出Excel 文件,并提供下载。使用 `openpyxl` 和 `HttpResponse` 可以完成这一任务。 以下是一个完整的实现示例: ```python from django.contrib import admin from datebase.models import * from openpyxl import Workbook from django.http import HttpResponse # 导出Excel class ExportExcelMixin(object): def export_as_excel(self, request, queryset): meta = self.model._meta field_names = [field.name for field in meta.fields] response = HttpResponse(content_type='application/msexcel') response['Content-Disposition'] = f'attachment; filename={meta}.xlsx' wb = Workbook() ws = wb.active ws.append(field_names) for obj in queryset: data = [f'{getattr(obj, field)}' for field in field_names] ws.append(data) wb.save(response) return response export_as_excel.short_description = '导出Excel' # 管理模块配置 class ExportAdmin(admin.ModelAdmin, ExportExcelMixin): actions = ['export_as_excel'] def get_list_display(self, request): lists = [] for f in self.model._meta.fields: lists.append(f.name) return lists # 注册管理模块 admin.site.register(Student, ExportAdmin) ``` 通过以上代码,管理员可以在 Django 后台选择多个记录并执行“导出Excel”操作,系统会生成一个包含所选数据的 Excel 文件,并触发浏览器的下载行为[^2]。 ### URL 配置示例 为了能够访问该视图,需要在 `urls.py` 中配置相应的路由: ```python from django.urls import path from . import views urlpatterns = [ path('generate-excel/', views.generate_excel, name='generate_excel'), ] ``` 当用户访问 `/generate-excel/` 路径时,服务器将生成 Excel 并将其作为响应返回,浏览器则根据响应头信息决定是否下载文件。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值