CN108153721B - 一种在Word文件嵌入图表的自动生成方法 - Google Patents
一种在Word文件嵌入图表的自动生成方法 Download PDFInfo
- Publication number
- CN108153721B CN108153721B CN201711272499.1A CN201711272499A CN108153721B CN 108153721 B CN108153721 B CN 108153721B CN 201711272499 A CN201711272499 A CN 201711272499A CN 108153721 B CN108153721 B CN 108153721B
- Authority
- CN
- China
- Prior art keywords
- data
- word
- picture
- graph
- chart
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/174—Form filling; Merging
Abstract
一种在Word文件嵌入图表的自动生成方法,包括以下步骤,1)安装操作Word文档的Python库docx和图生成库matplotlib.pyplot;2)在Word文件中编辑好表格和图的样式;3)在表格中添加插入数据置位符;4)判断表格标签是否符合规范;5)配置图表的数据源;6)调用由Python写成的图表自动生成程序遍历Word文档中的表格和图,完成表格中数据插入和图的更新。本发明可以使操作人员在word中直接更改标签来实现图的更新和报表数据的自动插入报告,以达到所见即所得目的。保证操作人员能够快速高效的完成对Word中图表的编辑操作,而且不需要依赖其他软件。
Description
技术领域
本发明涉及一种在Word文件嵌入图表的自动生成方法。
背景技术
如果想在Word文件中嵌入图和报表,通常得通过Excel建好表格和生成图片,并将在Excel中的手动生成的图表拷贝到Word文件中,每次拷贝完成后,还需要对报表的样式和尺寸、图片的位置等进行编辑,整个过程相对繁琐耗时。
如果嵌入的图表中某个数据需要修改时,整个过程还必须重新操作一次,很大程度上限制了用户的灵活更新的要求。
如果采用诸如XML和JSON来描述内嵌到Word文件中的报表和图的方法,则由于需要用户理解XML和JSON语法,更重要的是,无法预先看到在Word中内嵌图表的效果,不能实现所见即所得操作。
发明内容
本发明要解决的技术问题是克服现有技术的不足,提供一种在Word文件嵌入图表的自动生成方法,可以让操作人员先在Word文件中编辑好报表样式和图的位置,然后采用自动将数据填充到表格中、将原图更新成按数据生成的图的方法,实现所见即所得,并且更新图表的数据源后只需要简单重新生成一次即可。
为解决上述技术问题,本发明提出的技术方案为:一种在Word文件嵌入图表的自动生成方法,其特征在于:包括以下步骤,1)安装操作Word文档的Python库docx和图生成库matplotlib.pyplot;
2)打开Word文件,在其中插入表格和图,并编辑好表格和图的样式;
3)在表格中添加插入数据置位符,表格数据的标签分成三个部分,由表前缀、数据集名称以及数据项组成;图的标签是由插入图的名称来设置,图的名称分为两部分,一部分为图前缀“placeholder”、另一部分为生成图的数据集名称;
4)判断表格标签是否符合规范,如果不符合,则执行步骤五,如果符合,则进行步骤六;
5)提示标签设置错误,输出出错的标签,并结束程序;
6)配置图表的数据源,可以从数据库读取或者直接提供到Python源码文件中;
7)调用由Python写成的图表自动生成程序遍历Word文档中的表格和图,读出表格中标签解析出填充方式和数据集,在文档中自动填充数据;从图的属性中读出图片文件名,并从中解析出更新图所用的数据源,并采用pyplot库生成临时图,然后读取出图的数据内容,更新原图中的属性项pic_part._blob,完成图的更新,并且保持原文档中图表的位置和格式不发生变化;
8)结束Word内嵌图表的自动生成。
上述的在Word文件嵌入图表的自动生成方法,步骤3)中所述表前缀包括“H-”和“V-”,分别表示数据按行和按列填充,数据集名称描述了数据源中那组数据,其内容实质上为Python中字典数据结构中的关键字,数据项为数据集中的某个数据。
与现有技术相比,本发明的优点在于:本发明的在Word文件嵌入图表的自动生成方法,可以使操作人员在word中直接更改标签来实现图的更新和报表数据的自动插入报告,以达到所见即所得目的。保证操作人员能够快速高效的完成对Word中图表的编辑操作,而且不需要依赖其他软件。
附图说明
图1为实施例1中在word中内嵌自动生成图片置位标签示例。
图2为实施例1自动更新后的计量标准器稳定性考核图。
具体实施方式
为了便于理解本发明,下文将结合较佳的实施例对本发明作更全面、细致地描述,但本发明的保护范围并不限于以下具体的实施例。
需要特别说明的是,当某一元件被描述为“固定于、固接于、连接于或连通于”另一元件上时,它可以是直接固定、固接、连接或连通在另一元件上,也可以是通过其他中间连接件间接固定、固接、连接或连通在另一元件上。
除非另有定义,下文中所使用的所有专业术语与本领域技术人员通常理解的含义相同。本文中所使用的专业术语只是为了描述具体实施例的目的,并不是旨在限制本发明的保护范围。
一种在Word文件嵌入图表的自动生成方法,包括以下步骤,1)安装操作Word文档的Python库docx和图生成库matplotlib.pyplot;
2)打开Word文件,在其中插入表格和图,并编辑好表格和图的样式;
3)在表格中添加插入数据置位符,表格数据的标签分成三个部分,由表前缀、数据集名称以及数据项组成;图的标签是由插入图的名称来设置,图的名称分为两部分,一部分为图前缀“placeholder”、另一部分为生成图的数据集名称;
4)判断表格标签是否符合规范,如果不符合,则执行步骤五,如果符合,则进行步骤六;
5)提示标签设置错误,输出出错的标签,并结束程序;
6)配置图表的数据源,可以从数据库读取或者直接提供到Python源码文件中;
7)调用由Python写成的图表自动生成程序遍历Word文档中的表格和图,读出表格中标签解析出填充方式和数据集,在文档中自动填充数据;从图的属性中读出图片文件名,并从中解析出更新图所用的数据源,并采用pyplot库生成临时图,然后读取出图的数据内容,更新原图中的属性项pic_part._blob,完成图的更新,并且保持原文档中图表的位置和格式不发生变化;
8)结束Word内嵌图表的自动生成。
本发明中,步骤3)中表前缀包括“H-”和“V-”,分别表示数据按行和按列填充,数据集名称描述了数据源中那组数据,其内容实质上为Python中字典数据结构中的关键字,数据项为数据集中的某个数据。步骤7)中的数据填充方式,避免生成表格,而是在原表格中标签填写数据内容和更换图片内容,保持了图表的位置和格式,是本方法实现所见即所得操作的关键。
实施例1
本实施例为计量标准器稳定性考核图表的制作,作为本实施例所见即所得式word内嵌表格和图片的示例:
1)定义标签
表一
表一为“H-”开头标签示例,在此例中需要按行将各项数据自动更新到表格中,整个过程不改变表格中非标签内容。上例中标签为格式为“${H-0012g._1}”,其中“H-”表示按行填充,“0012g”表示表格内容对应到字典数据集的键值为“0012g”的数据集,“_1”至“_8”表示数据集中的数据项的键值。
表二
表二为“V-”开头标签示例,在此例中需要按列将各项数据自动更新到表格中,整个过程不改变表格中非标签内容。上例中标签为格式为“${V-AX64004-1._1}”,其中“V-”表示按列填充,“AX64004-1”表示表格内容对应到字典数据集的键值为“AX64004-1”的数据集,“_1”至“_10”以及“_y”、“_s”、“_result”、“_operator”表示数据集中的数据项的键值。
如图1所示为在此例中采取插入图片的文件名作为标签的方式,上例中文件名“placeholder-plot0012g”,其中“placeholder-”表示为图片置位标签,“plot”表示图片的生成方式,“0012kg”表示自动生成图片所采用的数据源对应到字典数据集的键值为“0012kg”的数据集,一旦执行自动更新操作,新的图片不改变置位图片所在的位置和尺寸大小。
2)准备数据集
从数据源中获取相关数据,按表格中所需要数据项进行组织,采用的是python语言的数据字典来存储数据集,例如下列键值为“AX64004-1”的数据集:
u'AX64004-1':[{'_result':u'\u5408\u683c','_y':'-10.8650',
'_9':u'-10.98','_8':u'-10.80','_7':u'-10.88','_6':u'-10.91','_5':u'-10.80','_4':u'
-10.80','_3':u'-10.85','_2':u'-10.80','_1':u'-10.83','_operator':u”,'_10':u'-11.0',
'date':'2012-04-07','condition':u'20.06\u210348.96%RH','_s':'0.0721'},{'_result':u'
\u5408\u683c','_y':'-10.9270','_9':u'-10.8','_8':u'-11.38','_7':u'-10.92','_6':u'-10
.88','_5':u'-10.81','_4':u'-10.87','_3':u'-10.91','_2':u'-10.88','_1':u'-11.01','_o
perator':u'test','_10':u'-10.81','date':'2014-07-23','condition':u'22.01\u2103
50.3%RH','_s':'0.1624'},{'_result':u'\u4e0d\u5408\u683c','_y':'-13.7483','_9':u'0',
'_8':u'0','_7':u'0','_6':u'-13.73','_5':u'-14.13','_4':u'-14.37','_3':u'-13.77','_
2':u'-13.77','_1':u'-12.72','_operator':u'test','_10':u'0','date':'2015-07-22
','condition':u'20.52\u210352.6%RH','_s':'0.5149'},{'_result':u'\u4e0d\u5408\u683c',
'_y':'2.5000','_9':u'0','_8':u'0','_7':u'0','_6':u'0','_5':u'0','_4':u'0','_3':
u'0','_2':u'3','_1':u'2','_operator':u'test','_10':u'0','date':'2017-11-25','condit
ion':u'20.06\u210348.96%RH','_s':'0.5000'}]
3)自动生成
遍历word文档中的表格和图片列表,按标签进行程序自动化填充。上述三个示例填充完后的结果分别如下:
表三为按行自动生成表格数据内容
表四为按列自动生成表格数据内容附源码:
1)构造数据集源码:
2)遍历word中表格并自动按列填充的源码:
3)更新图片的源码:
Claims (1)
1.一种在Word文件嵌入图表的自动生成方法,其特征在于:包括以下步骤,1)安装操作Word文档的Python库docx和图生成库matplotlib.pyplot;
2)打开Word文件,在其中插入表格和图,并编辑好表格和图的样式;
3)在表格中添加插入数据置位符,表格数据的标签分成三个部分,由表前缀、数据集名称以及数据项组成;图的标签是由插入图的名称来设置,图的名称分为两部分,一部分为图前缀“placeholder”、另一部分为生成图的数据集名称;
3)中所述表前缀包括“H-”和“V-”,分别表示数据按行和按列填充,数据集名称描述了数据源中那组数据,其内容实质上为Python中字典数据结构中的关键字,数据项为数据集中的某个数据;
4)判断表格标签是否符合规范,如果不符合,则执行5 ),如果符合,则进行6);
5)提示标签设置错误,输出出错的标签,并结束程序;
6)配置图表的数据源,从数据库读取或者直接提供到Python源码文件中;
7)调用由Python写成的图表自动生成程序遍历Word文档中的表格和图,读出表格中标签解析出填充方式和数据集,在文档中自动填充数据;从图的属性中读出图片文件名,并从中解析出更新图所用的数据源,并采用pyplot库生成临时图,然后读取出图的数据内容,更新原图中的属性项pic_part._blob,完成图的更新,并且保持原文档中图表的位置和格式不发生变化;
8)结束Word内嵌图表的自动生成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711272499.1A CN108153721B (zh) | 2017-12-06 | 2017-12-06 | 一种在Word文件嵌入图表的自动生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711272499.1A CN108153721B (zh) | 2017-12-06 | 2017-12-06 | 一种在Word文件嵌入图表的自动生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108153721A CN108153721A (zh) | 2018-06-12 |
CN108153721B true CN108153721B (zh) | 2021-06-25 |
Family
ID=62466041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711272499.1A Active CN108153721B (zh) | 2017-12-06 | 2017-12-06 | 一种在Word文件嵌入图表的自动生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108153721B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110187916B (zh) * | 2019-05-31 | 2022-09-02 | 四川长虹电器股份有限公司 | 基于数据配置生成Word文档的方法 |
CN111079388B (zh) * | 2019-11-15 | 2023-06-09 | 中国水利水电第八工程局有限公司 | 水利水电工程河道截流水力计算成果自动生成方法、系统及介质 |
CN111325012B (zh) * | 2020-01-22 | 2024-02-06 | 奇安信科技集团股份有限公司 | word报表生成方法与系统 |
CN113721900B (zh) * | 2021-09-06 | 2023-08-08 | 安徽工程大学 | 一种基于Python的钻孔灌注桩检验批快速生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122899A (zh) * | 2007-09-18 | 2008-02-13 | 杭州华三通信技术有限公司 | 报表的生成方法和设备 |
CN105955940A (zh) * | 2016-04-29 | 2016-09-21 | 云南电网有限责任公司 | 基于Java的数据分析系统自动生成Word报告 |
CN106776507A (zh) * | 2015-11-19 | 2017-05-31 | 北京国双科技有限公司 | Word文件生成方法和装置 |
CN106874244A (zh) * | 2017-01-03 | 2017-06-20 | 宁波大红鹰学院 | 一种基于工作序列的文档自动生成模型的构建方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7798417B2 (en) * | 2000-01-03 | 2010-09-21 | Snyder David M | Method for data interchange |
-
2017
- 2017-12-06 CN CN201711272499.1A patent/CN108153721B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101122899A (zh) * | 2007-09-18 | 2008-02-13 | 杭州华三通信技术有限公司 | 报表的生成方法和设备 |
CN106776507A (zh) * | 2015-11-19 | 2017-05-31 | 北京国双科技有限公司 | Word文件生成方法和装置 |
CN105955940A (zh) * | 2016-04-29 | 2016-09-21 | 云南电网有限责任公司 | 基于Java的数据分析系统自动生成Word报告 |
CN106874244A (zh) * | 2017-01-03 | 2017-06-20 | 宁波大红鹰学院 | 一种基于工作序列的文档自动生成模型的构建方法 |
Non-Patent Citations (1)
Title |
---|
基于VBA的数据报告自动生成系统;庄振春 等;《电子设计工程》;20170630;57-60 * |
Also Published As
Publication number | Publication date |
---|---|
CN108153721A (zh) | 2018-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108153721B (zh) | 一种在Word文件嵌入图表的自动生成方法 | |
US6061698A (en) | Merging tagged documents and scripts having dynamic content | |
US20180357055A1 (en) | System and method for computer language migration | |
CN105511873B (zh) | 用户界面控件展示方法及装置 | |
JP2007034813A (ja) | 複数自然言語のソフトウェア説明書生成システム | |
US20080155519A1 (en) | Code translator | |
US20090235164A1 (en) | Text file interface support in an object oriented application | |
CN108762743A (zh) | 一种数据表操作代码生成方法及装置 | |
CN111352628A (zh) | 一种前端代码生成方法、装置、计算机系统及可读存储介质 | |
US11314852B2 (en) | Method for the generation of personalized profile package data in integrated circuit cards | |
US6922704B2 (en) | Method for generating application specific input files | |
CN104049974A (zh) | 控件动态组装方法和系统 | |
CN106407172A (zh) | 一种基于xml的报表生成方法 | |
Santos et al. | Software refactoring for system modernization | |
CN108459846B (zh) | 软件云定制方法及平台 | |
JP5747698B2 (ja) | 要件管理支援装置 | |
CN115080046B (zh) | 一种页面设计中多组件抽象关联融合方法和装置 | |
CN116304189A (zh) | 一种excel文件中图像提取方法和电子设备 | |
CN114296726A (zh) | 一种代码生成方法、装置、计算机设备和存储介质 | |
CN113934748A (zh) | 混合型sql脚本文件生成方法、执行方法及装置 | |
CN113672509A (zh) | 自动化测试方法、装置、测试平台及存储介质 | |
JP2011204069A (ja) | テスト方法およびテスト仕様書テストデータ自動生成装置 | |
JP6097231B2 (ja) | プログラム生成装置および方法 | |
KR101765324B1 (ko) | Sql과 다이어그램을 이용하는 소스코드 생성 장치 및 그의 처리 방법 | |
US20120268482A1 (en) | User interface rendering and operating method, a computer program product, and a ui rendering and operating system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |