【问题标题】:Django/Python: Save an HTML table to ExcelDjango/Python:将 HTML 表格保存到 Excel
【发布时间】:2010-04-15 03:32:06
【问题描述】:

我有一个 HTML 表格,希望能够导出到 Excel 文件。我已经可以选择将表导出到 IQY 文件中,但我更喜欢不允许用户通过 Excel 刷新数据的东西。我只想要一个在用户单击链接/按钮时拍摄表格快照的功能。

如果该功能是 HTML 页面上的链接/按钮,允许用户保存表格中显示的查询结果,我会更喜欢它。如果可以保留 HTML/CSS 的格式也很好。有没有办法做到这一点?或者,我可以用 IQY 修改什么?

如果需要,我可以尝试提供更多详细信息。提前致谢。

【问题讨论】:

    标签: python django excel html-table


    【解决方案1】:

    您可以使用出色的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
    

    【讨论】:

      【解决方案2】:

      使用 CSV。 Python中有一个模块(“csv”)可以生成,excel可以原生读取。

      【讨论】:

      • 从用户界面的角度来看,我将如何将 CSV 文件呈现给用户?用户可能已经在查看该页面,所以他们是否会单击一个链接,然后返回某个查看功能并生成 CSV 文件,然后...?
      • 另外,CSV 不会保留我的 HTML 表格已有的任何格式,对吧?
      • 对。使用 CSV 的结果不是那么好看;这不仅是样式问题,甚至列宽也只是标准的。由于有多种方法可以生成原生 Excel 文件,因此我不建议使用 CSV。
      • 但原则很重要:您不是将 HTML 表格转换为 Excel,而是让视图函数以不同的格式输出相同的数据。
      【解决方案3】:

      Excel 支持将包含表格的 HTML 文件作为电子表格打开(即使是 CSS 格式)。

      您基本上必须从 django 视图中提供 HTML 内容,正如 Roberto 所说,内容类型为 application/ms-excel

      或者,如果您喜欢冒险,可以使用 Downloadify 之类的东西来准备要在客户端下载的文件。

      【讨论】:

        猜你喜欢
        • 2011-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多