import re
from docx import Document
from docx.shared import Pt
from Baidu_Text_transAPI_2 import baidu_api_fanyi
from docx.shared import Cm, RGBColor,Inches
from docx.oxml.ns import qn
from openpyxl import load_workbook
# 打开Word文档
doc = Document(r'C:\Users\11255\Documents\深度修理数据库5.08\统计工具及数据模板5.27\P-4710 APU IIR.docx')
# 打开Excel文档
workbook = load_workbook(r'C:\Users\11255\Documents\深度修理数据库5.08\统计工具及数据模板5.27\APU故障统计模板6.13.xlsx')
# 选择指定的工作表,这里假设是第一个工作表,或者你也可以通过名字选择
sheet = workbook['P4710']
table = doc.tables[3] # 假设你知道表格的索引
cell_text = table.cell(1, 3).text#机子号
print(cell_text)
sheet.cell(1, 2, value=cell_text)
cell_text = table.cell(2, 1).text#总使用时间
print(cell_text)
sheet.cell(1, 4, value=cell_text)
cell_text = table.cell(2, 5).text#上次到现在使用时间
sheet.cell(1, 7, value=cell_text)
print(cell_text)
cell_text = table.cell(0, 3).text
sheet.cell(1, 9, value=cell_text)
print(cell_text)
'''打开excel表格,输出所有需要关注的件号'''
#遍历指定列(例如'E'列)的第4行到第64行的数据
pn=[]#所有统计件号
for row in range(4, 65): # 注意range的结束是不包含的,所以使用65来包括第64行
cell_value = sheet[f'E{row}'].value # 假设我们要获取的是A列的数据
pn.append(cell_value)
print(pn) # 输出单元格的值
'''定义函数:如果能在word表格中找到件号信息,返回表格位置,否则返回不能找到件号信息0'''
def find_pn(target_number):
all_cell_text=[]
all_row_index=[]
all_col_index=[]
for table_idx, table in enumerate(doc.tables):
# 遍历表格中的每一行
for row_idx, row in enumerate(table.rows):
# 遍历每一行中的单元格
for cell_idx, cell in enumerate(row.cells):
# 检查单元格文本是否包含指定的数字
if target_number in cell.text:
#print(f"找到数字 {target_number} 在表格 {table_idx + 1} 的位置: 行 {row_idx + 1}, 列 {cell_idx + 1}")
# 获取指定的表格
table = doc.tables[table_idx] # 假设你知道表格的索引
# 获取指定的行和列
row_index = row_idx # 行索引(从0开始)
col_index = cell_idx # 列索引(从0开始)
# 获取指定单元格的文本
cell_text = table.cell(row_index, col_index).text
all_cell_text.append(cell_text )
all_row_index.append(row_index)
all_col_index.append(col_index)
#print(f"单元格文本: {cell_text}")
for inline in cell._element.getchildren():
if inline.tag.endswith('drawing'):
# 这里你可以进一步处理图片,但请注意,这通常不是直接的方法
# 你可能需要解析XML来更准确地定位图片
print("单元格中似乎包含图片,但获取具体图片信息比较复杂。")
# 你可能需要自己编写代码来解析XML并找到与单元格相关联的图片
# 或者,你可以通过图片在文档中的位置来手动推断它是否与单元格相关联
return(all_cell_text,all_row_index,all_col_index)
j=4
for i in pn:
if find_pn(str(i))[0]==[]:
#指定行列写入文字
sheet.cell(row=j, column=6, value="无故障合格")
else:
text=find_pn(str(i))[0][0]
sheet.cell(row=j, column=6, value="有故障")
pattern = r'.+?\d\)'
text = re.sub(pattern, r'', text)
pattern = r',(.+?)'
text = re.sub(pattern, r'\1', text)
s = baidu_api_fanyi(text)
sheet.cell(row=j, column=7, value=s)
j+=1
#保存修改后的Excel文档
workbook.save(r'test.xlsx')
print("处理结束")
01-15
3154
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
05-07
04-09
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交