From 9b44c9a05a009ee9f59b86278c95436582ce03a5 Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Tue, 15 Oct 2024 14:01:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dexcel=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=86=85=E5=AE=B9=E6=9C=89=E7=89=B9=E6=AE=8A=E5=AD=97?= =?UTF-8?q?=E7=AC=A6=E5=87=BA=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/application/serializers/chat_serializers.py | 3 +++ apps/dataset/serializers/document_serializers.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/apps/application/serializers/chat_serializers.py b/apps/application/serializers/chat_serializers.py index fc4195f81..2b345ecff 100644 --- a/apps/application/serializers/chat_serializers.py +++ b/apps/application/serializers/chat_serializers.py @@ -20,6 +20,7 @@ from django.core.cache import caches from django.db import transaction, models from django.db.models import QuerySet, Q from django.http import StreamingHttpResponse +from openpyxl.cell.cell import ILLEGAL_CHARACTERS_RE from rest_framework import serializers from application.flow.workflow_manage import Flow @@ -205,6 +206,8 @@ class ChatSerializers(serializers.Serializer): for row_idx, row in enumerate(batch_data, start=i + 2): for col_idx, value in enumerate(self.to_row(row), 1): cell = worksheet.cell(row=row_idx, column=col_idx) + if isinstance(value, str): + value = re.sub(ILLEGAL_CHARACTERS_RE, '', value) cell.value = value output = BytesIO() diff --git a/apps/dataset/serializers/document_serializers.py b/apps/dataset/serializers/document_serializers.py index bc3fbef23..03109fa4d 100644 --- a/apps/dataset/serializers/document_serializers.py +++ b/apps/dataset/serializers/document_serializers.py @@ -21,6 +21,7 @@ from django.db import transaction from django.db.models import QuerySet from django.http import HttpResponse from drf_yasg import openapi +from openpyxl.cell.cell import ILLEGAL_CHARACTERS_RE from rest_framework import serializers from xlwt import Utils @@ -510,6 +511,8 @@ class DocumentSerializers(ApiMixin, serializers.Serializer): for row_idx, row in enumerate(data): for col_idx, col in enumerate(row): cell = worksheet.cell(row=row_idx + 1, column=col_idx + 1) + if isinstance(col, str): + col = re.sub(ILLEGAL_CHARACTERS_RE, '', col) cell.value = col # 创建HttpResponse对象返回Excel文件 return workbook