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/