擅长:python、mysql、java
<p>通过扩展<code>PandasExcelRenderer</code>并重写<code>get_pandas_kwargs()</code>函数,可以使用Django REST Pandas来实现这一点。此函数可以返回<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_excel.html" rel="nofollow">DataFrame.to_excel()</a>的任何参数</p>
<pre><code>class CustomExcelRenderer(PandasExcelRenderer):
def get_pandas_kwargs(self, data, renderer_context=None):
return {
'sheet_name': 'Custom Name',
}
</code></pre>
<p><em>编辑</em>:一个特殊情况是第一个<code>to_excel()</code>参数(<code>excel_writer</code>),它在<code>get_pandas_args()</code>中单独处理:</p>
^{pr2}$
<p>要更改输出文件名,您需要在视图中设置一个头,可能是通过重写list()方法:</p>
<pre><code>class ExcelExportViewSet(PandasViewSet):
renderer_classes = [CustomExcelRenderer]
def list(self, request, *args, **kwargs):
response = super().list(request, *args, **kwargs)
# (compute filename)
response['Content-Disposition'] = 'attachment;filename=' + filename
</code></pre>