fix: 修复段落过长导出知识库报错
This commit is contained in:
parent
26a551bd49
commit
9aeb68c402
@ -681,7 +681,7 @@ class DataSetSerializers(serializers.ModelSerializer):
|
|||||||
document_list)
|
document_list)
|
||||||
workbook = DocumentSerializers.Operate.get_workbook(data_dict, document_dict)
|
workbook = DocumentSerializers.Operate.get_workbook(data_dict, document_dict)
|
||||||
response = HttpResponse(content_type='application/vnd.ms-excel')
|
response = HttpResponse(content_type='application/vnd.ms-excel')
|
||||||
response['Content-Disposition'] = 'attachment; filename="dataset.xls"'
|
response['Content-Disposition'] = 'attachment; filename="dataset.xlsx"'
|
||||||
workbook.save(response)
|
workbook.save(response)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import uuid
|
|||||||
from functools import reduce
|
from functools import reduce
|
||||||
from typing import List, Dict
|
from typing import List, Dict
|
||||||
|
|
||||||
import xlwt
|
import openpyxl
|
||||||
from celery_once import AlreadyQueued
|
from celery_once import AlreadyQueued
|
||||||
from django.core import validators
|
from django.core import validators
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
@ -34,8 +34,8 @@ from common.handle.impl.qa.csv_parse_qa_handle import CsvParseQAHandle
|
|||||||
from common.handle.impl.qa.xls_parse_qa_handle import XlsParseQAHandle
|
from common.handle.impl.qa.xls_parse_qa_handle import XlsParseQAHandle
|
||||||
from common.handle.impl.qa.xlsx_parse_qa_handle import XlsxParseQAHandle
|
from common.handle.impl.qa.xlsx_parse_qa_handle import XlsxParseQAHandle
|
||||||
from common.handle.impl.table.csv_parse_table_handle import CsvSplitHandle
|
from common.handle.impl.table.csv_parse_table_handle import CsvSplitHandle
|
||||||
from common.handle.impl.table.xlsx_parse_table_handle import XlsxSplitHandle
|
|
||||||
from common.handle.impl.table.xls_parse_table_handle import XlsSplitHandle
|
from common.handle.impl.table.xls_parse_table_handle import XlsSplitHandle
|
||||||
|
from common.handle.impl.table.xlsx_parse_table_handle import XlsxSplitHandle
|
||||||
from common.handle.impl.text_split_handle import TextSplitHandle
|
from common.handle.impl.text_split_handle import TextSplitHandle
|
||||||
from common.mixins.api_mixin import ApiMixin
|
from common.mixins.api_mixin import ApiMixin
|
||||||
from common.util.common import post, flat_map
|
from common.util.common import post, flat_map
|
||||||
@ -490,25 +490,27 @@ class DocumentSerializers(ApiMixin, serializers.Serializer):
|
|||||||
data_dict, document_dict = self.merge_problem(paragraph_list, problem_mapping_list, [document])
|
data_dict, document_dict = self.merge_problem(paragraph_list, problem_mapping_list, [document])
|
||||||
workbook = self.get_workbook(data_dict, document_dict)
|
workbook = self.get_workbook(data_dict, document_dict)
|
||||||
response = HttpResponse(content_type='application/vnd.ms-excel')
|
response = HttpResponse(content_type='application/vnd.ms-excel')
|
||||||
response['Content-Disposition'] = f'attachment; filename="data.xls"'
|
response['Content-Disposition'] = f'attachment; filename="data.xlsx"'
|
||||||
workbook.save(response)
|
workbook.save(response)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_workbook(data_dict, document_dict):
|
def get_workbook(data_dict, document_dict):
|
||||||
# 创建工作簿对象
|
# 创建工作簿对象
|
||||||
workbook = xlwt.Workbook(encoding='utf-8')
|
workbook = openpyxl.Workbook()
|
||||||
|
workbook.remove_sheet(workbook.active)
|
||||||
for sheet_id in data_dict:
|
for sheet_id in data_dict:
|
||||||
# 添加工作表
|
# 添加工作表
|
||||||
worksheet = workbook.add_sheet(document_dict.get(sheet_id))
|
worksheet = workbook.create_sheet(document_dict.get(sheet_id))
|
||||||
data = [
|
data = [
|
||||||
['分段标题(选填)', '分段内容(必填,问题答案,最长不超过4096个字符)', '问题(选填,单元格内一行一个)'],
|
['分段标题(选填)', '分段内容(必填,问题答案,最长不超过4096个字符)', '问题(选填,单元格内一行一个)'],
|
||||||
*data_dict.get(sheet_id)
|
*data_dict.get(sheet_id, [])
|
||||||
]
|
]
|
||||||
# 写入数据到工作表
|
# 写入数据到工作表
|
||||||
for row_idx, row in enumerate(data):
|
for row_idx, row in enumerate(data):
|
||||||
for col_idx, col in enumerate(row):
|
for col_idx, col in enumerate(row):
|
||||||
worksheet.write(row_idx, col_idx, col)
|
cell = worksheet.cell(row=row_idx + 1, column=col_idx + 1)
|
||||||
|
cell.value = col
|
||||||
# 创建HttpResponse对象返回Excel文件
|
# 创建HttpResponse对象返回Excel文件
|
||||||
return workbook
|
return workbook
|
||||||
|
|
||||||
|
|||||||
@ -199,7 +199,7 @@ const exportDataset: (
|
|||||||
dataset_id: string,
|
dataset_id: string,
|
||||||
loading?: Ref<boolean>
|
loading?: Ref<boolean>
|
||||||
) => Promise<any> = (dataset_name, dataset_id, loading) => {
|
) => Promise<any> = (dataset_name, dataset_id, loading) => {
|
||||||
return exportExcel(dataset_name + '.xls', `dataset/${dataset_id}/export`, undefined, loading)
|
return exportExcel(dataset_name + '.xlsx', `dataset/${dataset_id}/export`, undefined, loading)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|||||||
@ -310,7 +310,7 @@ const exportDocument: (
|
|||||||
loading?: Ref<boolean>
|
loading?: Ref<boolean>
|
||||||
) => Promise<any> = (document_name, dataset_id, document_id, loading) => {
|
) => Promise<any> = (document_name, dataset_id, document_id, loading) => {
|
||||||
return exportExcel(
|
return exportExcel(
|
||||||
document_name + '.xls',
|
document_name + '.xlsx',
|
||||||
`${prefix}/${dataset_id}/document/${document_id}/export`,
|
`${prefix}/${dataset_id}/document/${document_id}/export`,
|
||||||
{},
|
{},
|
||||||
loading
|
loading
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user