账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Django如何在内存里处理ajax传递进来的Excel文件?
    58
    0

    希望通过ajax从页面上传一些字段和一个excel文件进行处理

    前端部分是这样写的

    <form method="post">
        {% csrf_token %}
        <input class='a' type="text">
        <input class="up-files" type="file">
        <button class="up-btn">提交</button>
    </form>
    
    #js 部分
    <script>
    $('.wage-add-btn').click(function () {
             $.ajaxSetup({
         data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
        });
             if(confirm("请仔细检查表格确认上传")) {
                 var a = $('.a').val();
                 var files = $('.up-files').val();
                 $.ajax({
                    type:"POST",
                    data: {a:a, files:files},
                    url: "{% url 'add' %}",
                    cache: false,
                    dataType: "html",
                    success: function(){
                        alert('成功')
                    },
                    error: function(){
                        alert('失败')
                    }
                });
                return false;
             }
        });
    
    </script>


    views.py:

    def add(request):

    if request.method == 'POST':
        if request.is_ajax():
            a = request.POST.get('a')
            files = request.POST.get('files')
            data = xlrd.open_workbook(files)
    return render(request, 'index.html', locals())

    这里报错:
    IOError: [Errno 2] No such file or directory: u'C:\fakepath\u5956u54c1u53d1u653eu767bu8bb0u886835.xls'

    请问是哪里操作不对吗?是否有完整的实现可以借鉴?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 我在y城运快递 普通会员 1楼

      在Django中,处理AJAX传递进来的Excel文件通常需要使用Python的pandas库。pandas是一个强大的数据处理库,可以方便地读取、操作和显示Excel文件。

      以下是一个简单的示例,展示如何使用pandas和Django来处理AJAX传递进来的Excel文件:

      1. 首先,你需要安装pandas和Django。你可以使用pip来安装:

      bash pip install pandas django

      1. 然后,你需要在你的Django应用中设置一个视图函数来处理AJAX请求。你可以使用views.py文件来创建一个视图函数。在这个函数中,你需要导入pandas库,并使用requests库来发送AJAX请求。

      ```python from django.shortcuts import render import requests from .models import ExcelFile

      def excel_file(request): # 读取Excel文件 excel_file = ExcelFile.objects.get(file_name=request.POST.get('file_name'))

      # 在这里处理Excel文件
      # 这里只是一个示例,你需要根据你的实际需求来处理Excel文件
      data = excel_file.get_data()
      
      # 返回处理后的数据
      return render(request, 'your_template.html', {'data': data})
      

      ```

      1. urls.py文件中,你需要定义一个URL路由来映射到excel_file视图函数。在这个函数中,你需要设置一个URL模式,以便在浏览器中显示这个视图函数的URL。

      ```python from django.urls import path from . import views

      urlpatterns = [ path('excel_file/', views_excel_file, name='excel_file'), ] ```

      1. 最后,你需要在你的HTML模板中使用request.POST来获取AJAX请求的参数,然后将这些参数传递给excel_file视图函数。

      ```html

      Excel File

      Excel File

      {% csrf_token %}
      {% if data %}

      Data: {{ data }}

      {% endif %}

      ```

      以上就是一个简单的示例,展示了如何在Django中使用pandas和AJAX处理Excel文件。在实际应用中,你可能需要根据你的具体需求来处理Excel文件和AJAX请求。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部