|
@@ -223,21 +223,26 @@ async def generate_import_template(table_id: int, db: Session = Depends(get_db))
|
|
layer_name = table_structure["layer_name"]
|
|
layer_name = table_structure["layer_name"]
|
|
|
|
|
|
# 创建 DataFrame column_name
|
|
# 创建 DataFrame column_name
|
|
- data = [{col["column_comment"]:col['column_name']} for col in columns]
|
|
|
|
|
|
+ data = {}
|
|
|
|
+ for col in columns :
|
|
|
|
+ data[col["column_comment"]]=col['column_name']
|
|
column_names = [col["column_comment"] for col in columns]
|
|
column_names = [col["column_comment"] for col in columns]
|
|
- df = pd.DataFrame(data=data,columns=column_names)
|
|
|
|
|
|
+ df = pd.DataFrame(data=[data],columns=column_names)
|
|
|
|
|
|
# 将 DataFrame 转换为 Excel 文件
|
|
# 将 DataFrame 转换为 Excel 文件
|
|
output = BytesIO()
|
|
output = BytesIO()
|
|
with pd.ExcelWriter(output, engine="openpyxl") as writer:
|
|
with pd.ExcelWriter(output, engine="openpyxl") as writer:
|
|
df.to_excel(writer, index=False, sheet_name=layer_name)
|
|
df.to_excel(writer, index=False, sheet_name=layer_name)
|
|
-
|
|
|
|
|
|
+ encoded_filename = f'{layer_name}导入模板.xlsx'
|
|
# 设置响应头
|
|
# 设置响应头
|
|
output.seek(0)
|
|
output.seek(0)
|
|
|
|
+ from urllib.parse import quote
|
|
|
|
+ encoded_filename = quote(encoded_filename, encoding='utf-8')
|
|
headers = {
|
|
headers = {
|
|
- "Content-Disposition": f"attachment; filename=import_template_{table_structure['table_name']}.xlsx",
|
|
|
|
- 'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
|
|
|
|
|
+ 'Content-Disposition': f'attachment; filename*=UTF-8\'\'{encoded_filename}',
|
|
|
|
+ 'Content-Type': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
|
|
}
|
|
}
|
|
|
|
+
|
|
return StreamingResponse(output, headers=headers,
|
|
return StreamingResponse(output, headers=headers,
|
|
media_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
|
media_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
|
|
|
|
|