富文本在存儲時是帶有HTML代碼的,因此在將富文本導出word文檔時需要將富文本內容提取為純文本
純文字提取有兩種方法推薦第二種
方法一:
后台導入包
from django.template.defaultfilters import striptags #提取富文本文字
需要提取處調用
text = striptags(obj_wen.ued) #obj_wen.ued為富文本存儲在數據庫中的名

原文本
輸出純文本
通過對比,該方法可以提取純文本但對英文過濾不佳
方法二
采用djangoueditor官方文檔的方法
在富文本編輯頁面在前端獲取純文本內容然后通過表單存入后台
function getPlainTxt() {
text = UE.getEditor('id_content').getPlainTxt(); //獲取富文本編輯器中純文本
//document.getElementById("wenben").innerHTML=text;
$("#wenben").attr("value",text); //賦值給value傳入后台
}
id_content為前端ueditor id 可通過打開該頁面按F12查看 如圖:

提取結果
該方法基本完美解決英文純文本提取,該方法需要注意在調用提取純文字時需要在作者編輯完后開始,可寫在表單提交時
導出為word並實現下載基本一致
首先導入python word包
from docx import Document
然后構建文檔
document = Document() #docx函數
document.add_heading(obj_wen.biaoti, 0) #寫入標題
text = (obj_wen.textfield) #數據庫純文本
#text = striptags(obj_wen.ued) #此為方法一 obj_wen.ued 為需要導出的ueditor在數據庫存儲的內容
document.styles['Normal'].font.name = u'黑體' #字體格式黑體
p = document.add_paragraph()
p.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER #居中
run = p.add_run(text) #寫入文字
導入包實現下載文件名實現中文
from django.utils.http import urlquote #中文文件名
response = HttpResponse(content_type='application/octet-stream') #緩存申明 octet-stream為文件類型
response['Content-Disposition']='attachment;filename="%s.doc"'% urlquote(obj_wen.biaoti) #下載說明 文件名
document.save(response) #文件保存入緩存
return response
前端調用即可實現下載

希望對你有所幫助!