【问题标题】:How to download excel file如何下载excel文件
【发布时间】:2018-05-16 11:02:24
【问题描述】:

我正在使用有按钮的 GUI。单击按钮时,会发生一个 ajax 调用,该调用将 JSON 返回到 Django 的 view.py 中的后端。在JSON的基础上,我正在创建一个excel文件,并将这个文件的路径返回到发生ajax调用的地方。我希望单击同一个按钮即可下载该文件。

也就是说,是否可以通过单击该按钮完成所有这些操作(从 ajax 调用到下载 excel 文件)?

edit

Path表示文件系统的物理路径。

【问题讨论】:

  • 当你说路径时,你的意思是文件的 URL?
  • @SimonBruneaud 路径是机器的文件系统路径。
  • 我猜excel文件是在服务器端创建和存储的。因此,您的用户将无法访问该路径,因为它不在他们的本地计算机上。如果此项目的目的只是使用本地 Web 服务器创建,您仍然可以从浏览器获取文件:stackoverflow.com/questions/14052473/…

标签: javascript python ajax django


【解决方案1】:

是的,可以这样做。只需确保从您的 STATIC_URL 位置(默认为“静态”文件夹)提供文件。在你的views.py中,

def download(request):
    # /static/ is your STATIC_URL in settings
    file_path = "/static/xxxx.txt" # file path
    return JsonResponse({"file_path": file_path})

在您的 ajax 代码中,

xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.status == 200) {
      window.location = this.file_path;
    }
};
xhttp.open("GET", "/download", true);
xhttp.send(); 

【讨论】:

  • 我们需要在 urls.py 文件中为 '/download' 创建一个 url 吗?我在服务器端遇到的错误是“未找到:/download”和客户端“加载资源失败:服务器响应状态为 404(未找到)”
  • 是的,您必须为该视图定义一个 url
猜你喜欢
  • 2011-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-13
  • 1970-01-01
  • 1970-01-01
  • 2019-03-01
相关资源
最近更新 更多