📜  django 从同一目录导入 excel 文件 - Python (1)

📅  最后修改于: 2023-12-03 15:14:43.840000             🧑  作者: Mango

Django 从同一目录导入 Excel 文件

在 Django 中,我们可以通过以下步骤从同一目录导入 Excel 文件。

1. 安装依赖

首先,我们需要安装以下依赖:

pip install pandas openpyxl

其中,pandas 用于读取和处理 Excel 数据,openpyxl 则是用于读取和写入 Excel 文件。

2. 创建视图函数

接下来,我们需要创建一个视图函数来处理 Excel 文件导入的逻辑。在视图函数中,我们将使用 pandas 读取 Excel 文件并将其转换为 Django 模型对象,然后保存到数据库中。

import pandas as pd

from django.shortcuts import render
from .models import MyModel

def import_excel(request):
    if request.method == 'POST':
        excel_file = request.FILES['excel_file']
        df = pd.read_excel(excel_file)

        for _, row in df.iterrows():
            MyModel.objects.create(
                field1=row['Field1'],
                field2=row['Field2'],
                # ...
            )
        
        return render(request, 'import_success.html')
    
    return render(request, 'import_form.html')

在上面的代码中,我们首先判断请求方法是否为 POST,如果是,则获取上传的 Excel 文件,然后使用 pandas 读取该文件。接着,我们遍历 Excel 中的每一行,在 Django 中创建对应的模型对象。最后,返回导入成功的页面。

3. 编写模板

为了让用户上传 Excel 文件,我们需要在模板中添加一个表单,并将请求方法设置为 POST

<form method="post" enctype="multipart/form-data">
  {% csrf_token %}
  <input type="file" name="excel_file">
  <button type="submit">导入</button>
</form>
4. 配置 URL

最后,我们需要将视图函数和 URL 映射起来。在 urls.py 中添加以下代码:

from django.urls import path
from .views import import_excel

urlpatterns = [
    path('import/', import_excel, name='import_excel'),
]

现在,我们就可以通过访问 /import/ 来上传 Excel 文件并导入数据了。