首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django读取excel (xlsx)文件以在表格中显示

要在Django中读取Excel(xlsx)文件并在表格中显示,你需要使用一些库来处理Excel文件和表格显示

首先,确保已经安装了所需的库:

代码语言:javascript
复制
pip install openpyxl django-import-export

接下来,按照以下步骤操作:

  1. settings.py中添加import_exportINSTALLED_APPS
代码语言:javascript
复制
INSTALLED_APPS = [
    # ...
    'import_export',
]
  1. 创建一个模型,用于存储Excel文件中的数据。例如,假设你有一个包含姓名和年龄的Excel文件:
代码语言:javascript
复制
# models.py
from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=100)
    age = models.IntegerField()
  1. 创建一个资源类,用于将模型与Excel文件关联:
代码语言:javascript
复制
# resources.py
from import_export import resources
from .models import Person

class PersonResource(resources.ModelResource):
    class Meta:
        model = Person
  1. views.py中,创建一个视图来处理文件上传和表格显示:
代码语言:javascript
复制
# views.py
from django.shortcuts import render
from .models import Person
from .resources import PersonResource

def upload_excel(request):
    if request.method == 'POST':
        person_resource = PersonResource()
        result = person_resource.import_data(request.FILES['file'], dry_run=True)
        if result.has_errors():
            # 处理错误
            pass
        else:
            person_resource.import_data(request.FILES['file'], dry_run=False)
            persons = Person.objects.all()
            return render(request, 'table.html', {'persons': persons})
    return render(request, 'upload.html')

def table(request):
    persons = Person.objects.all()
    return render(request, 'table.html', {'persons': persons})
  1. 创建两个模板文件:upload.html用于上传文件,table.html用于显示表格:
代码语言:javascript
复制
<!-- upload.html -->
<form method="post" enctype="multipart/form-data">
  {% csrf_token %}
  <input type="file" name="file">
  <button type="submit">上传</button>
</form>

<!-- table.html -->
<table>
  <thead>
    <tr>
      <th>姓名</th>
      <th>年龄</th>
    </4>
  </thead>
  <tbody>
    {% for person in persons %}
      <tr>
        <td>{{ person.name }}</td>
        <td>{{ person.age }}</td>
      </tr>
    {% endfor %}
  </tbody>
</table>
  1. urls.py中添加URL,以便访问视图:
代码语言:javascript
复制
# urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('upload/', views.upload_excel, name='upload_excel'),
    path('table/', views.table, name='table'),
]

现在,你可以上传Excel文件并在表格中查看数据了。注意,这个示例仅适用于简单的Excel文件。对于更复杂的文件,你可能需要自定义导入过程。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券