python_doc 读写docx文件

python读写word文档有现成的库可以处理,在这里采用了 python-docx。

首先先安装

pip install python-docx

 

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys, os
import django
sys.path.append('../')
os.environ['DJANGO_SETTINGS_MODULE'] = 'web.settings' #setting的目录
django.setup()

from django.apps import apps as django_apps
from utils.papergen.report.device_constructor import DeviceConstructor
type = sys.getfilesystemencoding()

# 设置默认编码
type = sys.getfilesystemencoding()
def main():
    wd = DeviceConstructor.construct("docx")
    wd.add_title({"data": u"人物档案", "level": 1})  #创建一级标题

    all_apps = django_apps.get_models()
    for app in all_apps:
        wd.add_title({"data": [u"人员基本信息:%s    数据库表名称:%s" % (app._meta.label, app._meta.db_table)], "level": 1}) #创建标题
        temp_list = [[u"字段名称", u"中文字段名称", u"字段类型"],]
        for field in app._meta.fields:
            # text = u"%s,%s,%s" % (unicode(field.verbose_name), field.name, field.get_internal_type())
            # wd.add_text(text)
            temp_list.append([unicode(field.verbose_name), field.name, field.get_internal_type()])
        wd.add_table({'rows': len(temp_list), 'cols': 3, "data": temp_list})  # 创建表格
wd.save("person.docx") #保存

 想要下载下来的话:

response = HttpResponse(content_type='text/docx')
response['Content-Disposition'] = 'attachment; filename=%s.docx' % pk
wd.save(response)
return response

 参考:http://python-docx.readthedocs.io/en/latest/

posted @ 2018-04-23 16:46  karina梅梅  阅读(1495)  评论(0编辑  收藏  举报