Django/Python:将HTML表格保存为Excel

5 投票
3 回答
10777 浏览
提问于 2025-04-15 21:36

我有一个HTML表格,想把它导出到Excel文件里。我现在有一个选项可以把表格导出成IQY文件,但我更希望有一个方法,不让用户在Excel里刷新数据。我只想要一个功能,能够在用户点击链接或按钮时,抓取表格当时的快照。

我希望这个功能能在HTML页面上有一个链接或按钮,让用户可以保存表格中显示的查询结果。如果能保留HTML/CSS的格式就更好了。请问有没有办法做到这一点?或者说,有什么可以修改IQY的方法吗?

如果需要的话,我可以提供更多细节。谢谢!

3 个回答

0

Excel可以打开包含表格的HTML文件,并把它当作电子表格来使用(即使里面有CSS样式也没问题)。

基本上,你需要通过Django的视图来提供这个HTML内容,并设置内容类型为application/ms-excel,就像Roberto说的那样。

如果你想尝试一些新东西,可以使用类似Downloadify的工具来准备文件,让用户在客户端下载。

2

使用CSV格式。Python里有一个叫“csv”的模块可以用来生成CSV文件,而Excel可以直接打开这种格式的文件。

7

你可以使用非常棒的 xlwt 模块。这个模块使用起来非常简单,可以生成xls格式的文件(也就是Excel 2003的格式)。

下面是一个(未经测试的!)在Django视图中使用的例子:

from django.http import HttpResponse
import xlwt

def excel_view(request):
  normal_style = xlwt.easyxf("""
     font:
         name Verdana
     """) 
  response = HttpResponse(mimetype='application/ms-excel')
  wb = xlwt.Workbook()
  ws0 = wb.add_sheet('Worksheet')
  ws0.write(0, 0, "something", normal_style)
  wb.save(response)
  return response

撰写回答