-
2020-04-06 13:20:29更多相关内容
-
不规范word文档转excel格式.docx
2021-09-27 05:09:36不规范word文档转excel格式.docx -
python实现word文档批量转成自定义格式的excel文档
2020-12-23 01:01:39而word文档是没有固定格式的,想批量录入关系型数据库mysql,必须先转成excel文档。这个如果是手动一个个粘贴到excel表格,那就头大了。 我最终需要的excel文档结构是这样的:每道题独立占1行,每1列是这道题的一项... -
JSP生成WORD文档,EXCEL文档及PDF文档的方法
2020-10-23 11:45:04主要介绍了JSP生成WORD文档,EXCEL文档及PDF文档的方法,已实例形式分别介绍了JSP省城word、excel及PDF文件的相关原理及实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下 -
将Excel中的数据按照Word模板生成Word文档
2018-12-13 18:56:16本程序编写环境.NET 4.0、 VS2010,语言为C#,通过引用... [字段1:联系人] [字段2:联系电话] 根据检测出的字段编辑Word模板文件,添加相应字段的书签到模板文件,然后选择模板文件,最后批量生成Word文档到指定文件夹。 -
Word文档生产工具(Word模板从Excel中选取数据)
2017-09-28 11:28:45Mye2w version 0.3.0 (只支持excel/word 2003版本) 1、制作Word模板文件、用替换表达式标记需要从Excel中取值的部分,替换表达式为 ${页签号_行号_列号} 2、双击e2w.bat 运行程序 3、选择Excel数据文件、Word... -
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020-09-17 21:21:07主要介绍了python实现word文档批量转成自定义格式的excel文档的解决思路及实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下 -
迅捷word转换成excel转换器 迅捷word转换成excel转换器 v6.5
2020-10-18 01:16:42功能:word转换成excel转换器是一款将word文件转换为Excel表格文件,操作灰常的方便。有了word转换成excel转换器,您可以方便的将word文档转换为Excel表格,非常方便的将word里的表格文字、 -
vba程序 Excel表内容转Word
2019-06-06 14:21:25vba程序 Excel表内容转Word 每行生成一个word 并将对应内容写入word -
python PDF转word,excel和png
2021-08-31 14:57:27通过python GUI界面,实现PDF文档转word,excel(表格线规则)和png图片 -
Java通过POI读取Excel遍历数据,批量生成word文档
2020-04-09 17:37:05Java通过POI读取Excel遍历数据,根本word模板批量生成word文档,demo可运行,可根据需求修改 -
java写的把数据库表转文档(word或excel)
2020-09-15 14:41:141.用的时候只要把jdbc.properties文件里的数据库配置改一下就可以了 2.要生成word文档就执行DocMain 3.要生成excel文档就执行ExcelMain -
word ppt excel文档转换成pdf的C#实现代码
2020-12-26 05:04:54代码如下:using System;using System.Collections.Generic;using System.ComponentModel...using Word = Microsoft.Office.Interop.Word;using Excel = Microsoft.Office.Interop.Excel;using PowerPoint = Microsoft.O -
如何用Python将Word文档转换为Excel表格
2021-01-15 16:53:14本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 作者:小小明 来源:菜J学Python ...先测试一个word文档前1页的数据读取: from docx import ..本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
作者:小小明
来源:菜J学Python
Python爬虫、数据分析、网站开发等案例教程视频免费在线观看
https://space.bilibili.com/523606542
需求
有一个下面这种形式的word表格:
希望能转换为下面这种格式的excel表格:
测试word文档读取
先测试一个word文档前1页的数据读取:
from docx import Document doc = Document("编号02 质检员高级技师(一级)理论试卷.docx") for i, paragraph in enumerate(doc.paragraphs[:55]): print(i, paragraph.text)
从读取效果上看,各行文本数据都能很顺利的获取到。
匹配题型、题目和具体的选项
现在我们需要做的是就是匹配题型、题目和具体的选项,观察可以发现规律:
- 题型以大写数字开头
- 题目以普通数字+.开头
- 选项以括号+字母开头
❝
额外需要注意的:
开头几行文本也存在普通数字+.开头的,需要直接排除。
第7题的题目,和第19题的选项存在一些特殊的空白字符需要排除,
括号和小数点都同时存在半角和全角两种情况。
❞
对于需要注意的第二点:
查看一下这2处的空白字符:
doc.paragraphs[21].text
'7.(\xa0\xa0)是第一家实施六西格玛管理的公司。\xa0'
doc.paragraphs[49].text
'(A)参数设计 (B)常量设计\u3000 (C)变量设计\u3000\u3000 (D)系统设计'
发现分别是\xa0和\u3000。
整理好大致思路,我组织一下处理代码:
import re from docx import Document doc = Document("编号02 质检员高级技师(一级)理论试卷.docx") black_char = re.compile("[\s\u3000\xa0]+") chinese_nums_rule = re.compile("[一二三四]、(.+?)\(") title_rule = re.compile("\d+.") option_rule = re.compile("\([ABCDEF]\)") option_rule_search = re.compile("\([ABCDEF]\)[^(]+") # 从word文档的“一、单项选择题”开始遍历数据 for paragraph in doc.paragraphs[5:25]: # 去除空白字符,将全角字符转半角字符,并给括号之间调整为中间二个空格 line = black_char.sub("", paragraph.text).replace( "(", "(").replace(")", ")").replace(".", ".").replace("()", "( )") # 对于空白行就直接跳过 ifnot line: continue if title_rule.match(line): print("题目", line) elif option_rule.match(line): print("选项", option_rule_search.findall(line)) else: chinese_nums_match = chinese_nums_rule.match(line) if chinese_nums_match: print("题型", chinese_nums_match.group(1))
从目前测试结果来看没有问题。
保存匹配到的数据到结构化字典
现在我打算将当前匹配出来的文本数据存储成字典形式的结构化数据,字典结构的设计如下:
根据上述设计完善代码:
import re from docx import Document from collections import OrderedDict doc = Document("编号02 质检员高级技师(一级)理论试卷.docx") black_char = re.compile("[\s\u3000\xa0]+") chinese_nums_rule = re.compile("[一二三四]、(.+?)\(") title_rule = re.compile("\d+.") option_rule = re.compile("\([ABCDEF]\)") option_rule_search = re.compile("\([ABCDEF]\)[^(]+") # 保存最终的结构化数据 question_type2data = OrderedDict() # 从word文档的“一、单项选择题”开始遍历数据 for paragraph in doc.paragraphs[5:]: # 去除空白字符,将全角字符转半角字符,并给括号之间调整为中间一个空格 line = black_char.sub("", paragraph.text).replace( "(", "(").replace(")", ")").replace(".", ".").replace("()", "( )") # 对于空白行就直接跳过 ifnot line: continue if title_rule.match(line): options = title2options.setdefault(line, []) elif option_rule.match(line): options.extend(option_rule_search.findall(line)) else: chinese_nums_match = chinese_nums_rule.match(line) if chinese_nums_match: question_type = chinese_nums_match.group(1) title2options = question_type2data.setdefault(question_type, OrderedDict())
遍历结构化字典并存储
然后我们遍历结构化字典,将数据保存到pandas对象中:
import pandas as pd result = [] max_options_len = 0 for question_type, title2options in question_type2data.items(): for title, options in title2options.items(): result.append([question_type, title, *options]) options_len = len(options) if options_len > max_options_len: max_options_len = options_len df = pd.DataFrame(result, columns=[ "题型", "题目"]+[f"选项{i}"for i in range(1, max_options_len+1)]) # 题型可以简化下,去掉选择两个字 df['题型'] = df['题型'].str.replace("选择", "") df.head()
结果:
最终保存结果:
df.to_excel("result.xlsx", index=False)
完整代码
最终完整代码:
import pandas as pd import re from docx import Document from collections import OrderedDict doc = Document("编号02 质检员高级技师(一级)理论试卷.docx") black_char = re.compile("[\s\u3000\xa0]+") chinese_nums_rule = re.compile("[一二三四]、(.+?)\(") title_rule = re.compile("\d+.") option_rule = re.compile("\([ABCDEF]\)") option_rule_search = re.compile("\([ABCDEF]\)[^(]+") # 保存最终的结构化数据 question_type2data = OrderedDict() # 从word文档的“一、单项选择题”开始遍历数据 for paragraph in doc.paragraphs[5:]: # 去除空白字符,将全角字符转半角字符,并给括号之间调整为中间一个空格 line = black_char.sub("", paragraph.text).replace( "(", "(").replace(")", ")").replace(".", ".").replace("()", "( )") # 对于空白行就直接跳过 ifnot line: continue if title_rule.match(line): options = title2options.setdefault(line, []) elif option_rule.match(line): options.extend(option_rule_search.findall(line)) else: chinese_nums_match = chinese_nums_rule.match(line) if chinese_nums_match: question_type = chinese_nums_match.group(1) title2options = question_type2data.setdefault( question_type, OrderedDict()) result = [] max_options_len = 0 for question_type, title2options in question_type2data.items(): for title, options in title2options.items(): result.append([question_type, title, *options]) options_len = len(options) if options_len > max_options_len: max_options_len = options_len df = pd.DataFrame(result, columns=[ "题型", "题目"]+[f"选项{i}"for i in range(1, max_options_len+1)]) # 题型可以简化下,去掉选择两个字 df['题型'] = df['题型'].str.replace("选择", "") df.to_excel("result.xlsx", index=False)
最终得到的文件:
-
office文档(word,excel,ppt)转PDF
2018-08-09 12:47:19python脚本实现Office文档(word,excel,ppt)转pdf,支持linux,windows。安装使用方式见脚本中的注释 -
java文档excel、word、pdf、ppt转图片
2021-03-17 17:53:48java文档excel、word、pdf、ppt转图片 -
Python自动化办公案例9-批量提取Word文档的表格填充到Excel
2020-08-17 10:30:40通过Python自动化办公把提取word中的表格,填充到到excel当中. 首先通过for循环提取word当中的表格的每个单元格的内容,然后指定excel,进行批量填充 -
android中poi生成word文档和excel文档
2017-02-23 11:43:47将assets中.xml中的doc文件中,就会生成word文档和excel文档 -
Java通过OpenOffice将word、ppt、excel、图片、txt文档转换成PDF-附件资源
2021-03-02 15:07:44Java通过OpenOffice将word、ppt、excel、图片、txt文档转换成PDF-附件资源 -
jsp页面中显示word/excel格式的文档的方法
2021-01-20 14:19:33word页面只要在jsp头... 您可能感兴趣的文章:JSP上传excel及excel插入至数据库的方法JSP导出Excel文件的方法JSP实现从数据库导出数据到Excel下载的方法jsp实现针对excel及word文档的打印方法jsp导出excel并支持分she -
springboot中使用freemarker动态生成word文档,以及使用POI导出自定义格式Excel
2019-10-22 17:39:34Springboot项目中: 1. 使用Apache POI 3.9 自定义样式导出Excel文件...2. 使用freemarker动态生成word .doc文档(带图片Word以及复杂格式word) 详细说明见个人博客及 github: https://github.com/DuebassLei/excel-poi -
php导出word文档与excel电子表格的简单示例代码
2020-10-26 04:13:56本篇文章主要是对php导出word文档与excel电子表格的简单示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 -
excel表格如何转换成word表格_告诉你如何将excel表格转换成word文档
2020-11-18 11:52:29Excel强大的制表功能让很多人感受到了这款软件的方便与实用,特别是单元格拆分与...这时候,有些朋友先用Excel制作好表格,然后再把表格粘到Word里来解决这个问题。这时,您会发现粘到Word里后,表格的大小线形粗线...Excel强大的制表功能让很多人感受到了这款软件的方便与实用,特别是单元格拆分与合并的灵活性,是其他软件所不能比拟的。但有些时候,我们需要在WORD中绘制一些表格,特别是内容较为复杂的表格时(如个人基本情况与工作简历表),就显得不是那么容易了。这时候,有些朋友先用Excel制作好表格,然后再把表格粘到Word里来解决这个问题。这时,您会发现粘到Word里后,表格的大小线形粗线都会发生改变,还得重新进行调试,同样费时费力。这时,我们可以通过以下方式,对文本进行相关转换,就可以在文档中看到完美的表格了。
1、首先用Excel编辑好表格,设置成一个完整的页面。然后点击“文件”→另存为“网页”,在“保存选项”处把“保存整个工作簿”调整成“选择:工作表”,把默认文件名“*.htm”根据实际情况改成你所需要的名字,如:“*.htm”,再点击“保存”。注意,在改名时绝对不可以把后面的.htm去掉,只要改“.”前面的部分就可以了。
2、到相应位置找到刚才保存好的“*.htm”,在文件上面点击鼠标右键,选择“打开方式”最下面的“打开程序”选项,在列表中找到“Word”,选中并确定,即可打开完美的表格了。
3、直接点击“文件”→“另存为”,把保存类型选成“Word文档”,即可将文件保存为WORD文档了。
4、美中不足的是转换后的表格最后一行只有表格竖线,没有表格横线,使用边框设置或手工绘制均解决不了此问题。这时可选中最后一行,然后点击菜单栏中的“表格——转换——表格转换为文本”,选择默认方式(制表符),点击“确定”即可。
5、如果表格的最后一行有文字,可在转换前的EXCEL中最后一行的下方插入一个空白行,然后再进行转换。也可以在转换后的WORD文档的最后一行插入一个空白行,选中这个空白行,进行“表格——转换——表格转换为文本”)即可。
-
word、excel、ppt转pdf,spring boot小demo
2019-06-28 11:40:18word、excel、ppt转pdf小demo,毫无水印,全套可用包含三个jar,三个测试文档,还有可用license.xml,spring boot写的,建议idea打开 -
接口文档标准模板-含Word和excel两种
2018-02-06 09:36:51接口文档标准的模板,包含Word和excel两种模板。满足各种语言接口需要。 -
java实现word,ppt,excel等转换
2017-12-19 15:38:46java实现word,ppt,excel等转换!!自己写的!我把启动软件的命令都写在代码里面,直接运行就可以!文档有我QQ如有不明白加我!帮你搞定!