阶段性胜利也要纪念一下!在
【VBA脚本】提取word文档中所有批注的信息和待解决状态
中,规划软件了最终版的状态:
1.选取目录,之后递归得到所有word文档;
2.对每一个word文档,抓取所有的批注,包括文档路径、批注页码、行号、批注内容、原文、批注者、批注时间、批注解决状态,其中批注解决状态是需要的核心信息;
3.设置选项,可以只抓取未解决的批注;
4.抓取成功后将信息整理到需要的excel文档中,以供评审。
而现在呢,事情的前两步已经完成,因此可以作为V1版本。
在dict文件夹中双击打开get_comments.exe:
点击“选取目录”,选择要检查的目录:
点击“开始检查”,因为实际操作是打开word - 执行宏 - 关闭word,所以执行时间会比较长,所以点完开始检查就可以去午休了:
如果午休回来下面的界面是空白的,那说明软件出错了o(╥﹏╥)o如果下面有东西,那么就可以打开log看看处理结果了:
每次执行都会生成新的log文件,为了避免占空间,可以点击“清空缓存”:
源码也在里面:
链接:https://pan.baidu.com/s/1hTXPHc-F0UA4uzZ2sK6dEQ
提取码:wixd
使用
Python
-docx库可以很方便的处理docx文件(官方
文档
)
但是有些隐含的信息
Python
-docx库好像无法读取,比如docx
文档
里的
批注
下面介绍一种用
python
获取
docx
文档
批注
的方法
首先区分doc文件和docx文件
以前Office产品中
Word
用.doc文件格式,这种二进制格式很难与其他软件兼容 。docx是Microsoft Office2007之后
版本
使用的,用新的基...
这个时间点出现在这里是因为这个事情很激动,关于用
python
给
word
加
批注
我搜索了很多都没啥结果,最后是结合百度的一句没头没尾的话 + 很多 pywin32 的教程自己测试出来的,或许是我学艺不精或者搜索能力差,但现在的我很激动,现在放结果:
from win32com.client import Dispatch
word
= Dispatch('
Word
.Application')
word
.Visible = 0
path = 'C:/Users/admin\Desktop/test_comme
项目需要实现自动在docx中插入
批注
,首选为
python
,
python
中有docx库,但是到目前为止还是未支持插入
批注
功能,但是在
python
-docx项目中,有人提出了这个问题,作者scanny给出了相关指导。
总结一下大致思路为:解压docx文件后会得到很多文件及文件夹,对比插入
批注
和未插入
批注
的解压文件发现:插入
批注
会新增一个
word
/comments.xml文件,并且会修改
word
/_r...
Python
是一种强大的编程语言,它具有处理文本、数据和自然语言的功能。
Python
可以轻松地读取和
提取
各种数据,包括
Word
文档
中的表格。
在
Python
中
批量
提取
Word
表格,需要使用第三方库
python
-docx。该库是专门用于读取和写入 Microsoft
Word
文档
的
Python
库。使用该库可以轻松地
批量
处理
Word
文档
中的表格,
提取
表格数据、插入数据或修改数据。
具体步骤如下:
1. 安装
python
-docx 库。可以通过 pip install
python
-docx 命令来安装。
2. 使用 docx.Document() 创建一个
Word
文档
对象。
3. 遍历
文档
中的表格,使用 table.rows 和 table.columns
获取
表格的行列数。
4. 遍历表格中的每一行,使用 row.cells
获取
每一行的单元格。
5.
获取
每一行单元格的数据,使用 cell.text
获取
单元格的文本内容。
完整代码示例如下:
import docx
# 创建一个
Word
文档
对象
document = docx.Document('example.docx')
# 遍历
文档
中的表格
for table in document.tables:
#
获取
表格的行列数
nrows = len(table.rows)
ncols = len(table.columns)
# 遍历每一行
for i in range(nrows):
#
获取
每一行的单元格
row_cells = table.rows[i].cells
# 遍历每一行的单元格
for j in range(ncols):
#
获取
单元格数据
cell_data = row_cells[j].text
print(cell_data)
以上是使用
Python
批量
提取
Word
表格的方法,该方法可以方便快捷地处理多个
文档
中的表格数据,提高数据处理效率。
### 回答2:
Python
是一个非常强大的编程语言,能够处理各种数据类型和文件格式。针对
word
表格的
批量
提取
,也可以使用
Python
轻松实现。以下是实现的方法:
1. 安装
python
-docx库
python
-docx是
Python
的一个库,可以用于处理
Word
文档
。首先需要在电脑上安装
Python
和
python
-docx库。
在命令行中输入以下命令安装
python
-docx库:
pip install
python
-docx
2. 打开
word
文档
使用
Python
打开
word
文档
的代码如下所示:
```
python
import docx
doc = docx.Document('file.docx') # ‘file.docx’是需要
提取
表格的
Word
文档
3.
获取
文档
中的表格
使用以下代码可以
获取
文档
中的所有表格:
```
python
tables = doc.tables
4.
批量
读取表格数据
使用以下代码可以读取表格中的数据:
```
python
for table in tables:
for row in table.rows:
for cell in row.cells:
print(cell.text)
以上代码将输出所有表格的行和列对应的文字内容。需要注意的是,表格中可能包含合并的单元格,需要额外处理,可以使用
python
-docx库中的Table类方法来处理。
5.
批量
写入数据
批量
写入数据时,可以先将表格转换为一个嵌套列表,然后将表格数据写入CSV文件中。以下是转换表格并写入CSV文件的代码:
```
python
import csv
import docx
doc = docx.Document('file.docx') # ‘file.docx’是需要
提取
表格的
Word
文档
tables = doc.tables
for table in tables:
data = []
keys = None
for i, row in enumerate(table.rows):
text = (cell.text for cell in row.cells)
if i == 0:
keys = tuple(text)
continue
row_data = dict(zip(keys, text))
data.append(row_data)
with open(f"{table.name}.csv", "w", newline="") as f:
writer = csv.DictWriter(f, keys)
writer.writeheader()
writer.writerows(data)
以上代码将根据每个表格的名称自动将表格数据写入对应的CSV文件中。
Python
提取
word
表格的过程就是这样,简单易懂,实现起来也相对简单。而且
Python
操作
word
文档
不需要Microsoft Office软件本身,只需要安装相应的库即可,操作更加便捷。
### 回答3:
要
批量
提取
Word
表格,可以使用
Python
中的
python
-docx 库。该库是一个用于创建、修改和
提取
Microsoft
Word
文档
的
Python
解析程序库,并且非常适合处理
Word
文档
中的表格。
具体步骤如下:
1. 安装
python
-docx 库:可以通过 pip 命令进行安装,命令为 pip install
python
-docx。
2. 导入
python
-docx 库:在
Python
代码中导入
python
-docx 库,以便使用库中的函数和类。
3. 打开
Word
文档
:使用库中的 Document 类打开
Word
文档
,方法为 doc = Document('filename.docx'),其中 filename.docx 是要打开的
Word
文件名。
4. 遍历
Word
文档
中的表格:使用 doc.tables 属性可以
获取
文档
中的所有表格,该属性返回一个表格列表,其中每个表格都是一个 Table 对象。
5. 处理每一个表格:对于每个 Table 对象,使用 for 循环遍历每一行(row)和每一列(cell)以处理表格中的数据。例如,要
获取
表格中第2行第3列单元格的文本内容,并将其存储在变量 text 中,可以使用 text = table.cell(2, 3).text。
6. 将数据保存到文件中:使用
Python
中的标准文件处理方法将数据保存到文件中。
以下是一个示例代码,用于从一个
Word
文档
中
提取
所有表格的内容并将其保存到 CSV 文件中:
```
python
import csv
from docx import Document
document = Document('example.docx')
tables = document.tables
for table in tables:
with open('table.csv', 'a', newline='') as csvfile:
writer = csv.writer(csvfile, delimiter=',')
for row in table.rows:
row_data = []
for cell in row.cells:
row_data.append(cell.text)
writer.writerow(row_data)
writer.writerow([])
在此示例中,我们使用 csv 库将
提取
到的表格内容保存到一个名为 table.csv 的 CSV 文件中。我们使用 for 循环遍历每个表格,然后使用嵌套的 for 循环遍历每个行和单元格,
提取
单元格中的文本内容,并将每一行的数据写入 CSV 文件中。最后,我们在 CSV 文件中插入一个空行以区分不同的表格。
总之,使用
python
-docx 库可以方便地
批量
提取
Word
表格数据,
提取
的数据可以方便地保存到 CSV、JSON 或其他常见的数据格式中。