【python获取.doc内表格指定单元格数据】

news2024/11/16 7:43:12

python获取.doc内表格指定单元格数据

  • 需求说明
  • 代码部分

需求说明

读取.doc内表格中指定数据并以对象形式输出
1、获取第一张表内:部门编码、物料编码、退库数量(数字型)、物料质量问题描述、物料来源、填写人数据
2、获取第二张表格内:采购人员ID

案例表格:在这里插入图片描述

#pic_center)

代码部分

import os
import docx
from docx import Document #导入库
from win32com.client import Dispatch
from openpyxl import  Workbook 
from openpyxl import workbook
from openpyxl import load_workbook
'''
获取绝对地址,
如果是doc的转换为docx。
'''
#文件相对路径
def doc2docx(file_path):
    file_name, file_extension = os.path.splitext(file_path)#获取文件名、文件扩展名
    file_abs_path = os.path.abspath(file_path) #通过相对路径获取绝对路径
    if file_extension in [".doc"]:
        #打开word应用程序
        wd=Dispatch("Word.application")
        #后台运行
        wd.Visible = 0
        wd.DisplayAlerts = 0
        #打开doc文档,必须给一个绝对路径
        doc=wd.Documents.Open(file_abs_path)
        #另存为docx
        doc.SaveAs(file_abs_path+r"x",12)#12表示docx格式
        #关闭文档
        doc.Close()
        #退出word应用
        wd.Quit()
        file_abs_path = file_abs_path+r"x"#更新路径为docx的路径


    '''
    读取word的表格内的数据。
    '''
    
    list = ['部门编码', '物料编码', '退库数量(数字型)','物料质量问题描述','物料来源','填写人']
    word = Document(file_abs_path) #读入文件
    s=word.tables[1] #docx内读取第二张表
    t=word.tables[0] #docx内读取第一张表

  
    lo = {} # 存储每一行去重后的数据 第二张表信息
    for ss in range(0, len(s.rows)):
                for ll in range(0,len(s.row_cells(ss))):  # 提取row行的全部列数据并遍历
                    source = s.cell(ss,ll).text
                    if '采购人员ID:' == source:
                        lo['采购人员ID']=s.cell(ss,ll+1).text.strip()

    #第一张表信息
    for name in list:
        for row in range(0, len(t.rows)):
            row_list = []
            for col in range(0,len(t.row_cells(row))):  # 提取row行的全部列数据
                #row_list.append(t.cell(row,col).text) # 去除字符串中的特殊字符,并添加到临时列表中
                source = t.cell(row,col).text
                if name == source:
                    lo[name]=t.cell(row,col+1).text.split('\n')[0].strip()
     
     #编号信息
    for paragraph in word.paragraphs:
        # 获取段落中的文本
        text = paragraph.text
        if '编号' in text:
           lo['编号']=text.split(':')[1].strip()
        else:
            pass

    print(lo)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1083614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

简单列举客户关系管理系统的核心功能

CRM客户关系管理系统能够帮助企业收集、管理、维护客户信息,轻松跟进客户全过程,提供高质量的客户服务,通过数据分析为管理数据赋能。CRM系统能够让企业以客户为中心,实现全维度管理。那么,CRM系统的核心功能有哪些&am…

如何实现全网采集

品牌在控价过程中,需要对产品链接的价格进行监测,监测就要先做采集,采集完成后,再对数据进行促销信息的汇总计算,得出到手价,输出低价报表,从过程中可以看出,采集是非常关键的一步&a…

简单理解JS回调函数(callback)

一、回调函数到底是什么? 其实回调函数(没有调用也会执行)就是一个参数,把这个参数传到另一个函数里面,也就是主函数里面,当主函数里面的事情干完再回头去执行当做参数传进去的回调函数,回头去调…

Kelper.js 笔记 python交互

1 加载Kepler 地图 KeplerGl() 1.1 主要参数 height 可选 默认值:400 地图显示的高度 data 数据集 字典,键是数据集的名称 config地图配置字典 1.2 举例 from keplergl import KeplerGlmap_KeplerGl() map_ 默认的位置 1.3 添加自己的图 1.3.1 读…

关键词搜索苏宁商品列表数据,苏宁商品列表数据接口,苏宁API接口

在网页抓取方面,可以使用 Python、Java 等编程语言编写程序,通过模拟 HTTP 请求,获取苏宁网站上的商品页面。在数据提取方面,可以使用正则表达式、XPath 等方式从 HTML 代码中提取出有用的信息。值得注意的是,苏宁网站…

试过GPT-4V后,微软写了个166页的测评报告,业内人士:高级用户必读

一周之前,ChatGPT迎来重大更新,不管是 GPT-4 还是 GPT-3.5 模型,都可以基于图像进行分析和对话。与之对应的,多模态版GPT-4V模型相关文档也一并放出。当时 OpenAI 放出的文档只有18页,很多内容都无从得知,对…

作战仿真试验理论体系研究

源自:装甲兵工程学院学报 作者:徐享忠,杨建东,郭齐胜 “人工智能技术与咨询” 发布 摘要 建立了作战仿真试验的概念框架,以预测论、作战仿真理论和试验理论为基础理论,以仿真试验目标、仿真试验模式、…

Java基于SpringBoot+Vue的汽车租赁系统

1 简介 致远汽车租赁管理方面的任务繁琐,以至于公司每年都在致远汽车租赁管理这方面投入较多的精力却效果甚微,致远汽车租赁系统的目标就是为了能够缓解致远汽车租赁管理工作方面面临的压力,让致远汽车租赁管理方面的工作变得更加高效准确。 文章首发地址 2 技术栈 开发语言…

Kubernetes核心组件Services

1. Kubernetes Service概念 Service是kubernetes最核心的概念,通过创建Service,可以为一组具有相同功能的POD(容器)应用提供统一的访问入口,并且将请求进行负载分发到后端的各个容器应用上。 在Kubernetes中&#xf…

vue项目打包后使用reverse-sourcemap反编译到源码(详解版)

首先得说一下,vue项目中productionSourceMap这个属性。该属性对应的值为true|false。 当productionSourceMap: true,时:   1、打包后能看到xxxx.js.map文件,map文件够通过反编译看到源码;   2、打包后会导致文件变大(因为多了很多map文件导致的)&…

智慧政务大屏建设方案

智慧政务大屏建设方案是为政府部门提供信息化展示和决策支持的重要工具。下面将提供一个详细的智慧政务大屏建设方案,包括硬件设备、软件平台和功能模块等。 **一、硬件设备** 智慧政务大屏的硬件设备需要满足以下基本要求: 1. 显示屏:选择…

网页游戏的开发流程

网页游戏的开发流程可以根据项目的规模和复杂性而有所不同,但通常包括以下一般步骤,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.需求分析: 确定游戏的概念、目标受众和核…

关于信息安全软考的记录5

1、防火墙的概念 为了应对网络威胁,联网的机构或公司将自己的网络与公共的不可信任的网络进行隔离。 网络的安全信息程度和需要保护的对象,人为地划分若干安全区域,这些安全区域有: 公共外部网络,如Intrenet内联网&…

华为云云耀云服务器L实例评测|华为云耀云服务器L实例评测包管理工具安装软件(六)

七、华为云耀云服务器L实例评测包管理工具安装软件: 根据企业级项目架构图所示,本章主要是安装公司企业项目的基本环境LNMP,相关的包管理器Composer、Node、Npm、Yarn安装,评测一下包管理工具安装软件是否存在问题,如果…

【Tomcat】Apache发布两个新版本Tomcat修复多个Bug

Apache 官网发布了两个最新的 Tomcat 版本包,分别是:8.5.94、9.0.81 这两个最新版本修复了多个漏洞,统计信息如下表所示。有关漏洞的详细信息,请查阅官方相关文档(见:参考)。 严重等级漏洞说明…

Premiere Elements 2024(PR简化版)直装版

Adobe Premiere Elements 2024 是一款由Adobe Systems推出的视频编辑软件,它结合了易用性和专业级的功能,帮助用户对视频进行剪辑、特效、色彩校正等处理。 主要功能和特点: 导入和组织视频:Premiere Elements 2024允许用户快速导…

安装CentOS7.9操作系统

下面是安装CentOS7.9操作系统的步骤: 下载CentOS7.9镜像文件,可以到CentOS官网或者其他镜像站点下载。 创建一个可用的安装媒介,可以使用USB或者DVD。 插入安装媒介,启动计算机,进入BIOS设置,选择从外部设…

数据仓库Hive(林子雨课程慕课)

文章目录 9.数据仓库Hive9.1 数据仓库的概念9.2 Hive简介9.3 SQL语句转换为MapReduce作业的基本原理9.4 Impla9.4.1 Impala简介9.4.2 Impala系统架构9.4.3 Impala查询执行过程9.4.4 Impala与Hive的比较 9.5 Hive的安装和基本操作9.5.1 Hive安装9.5.2 Hive基本操作 9.数据仓库Hi…

STM32F407ZGT6移植AD7606

昨天调试的时候在STM32F103VCT6程序一切正常。但是将代码移植到STM32F407ZGT6时出现问题。 不能正常读取结果,会出现4996的错误信号而且经常出现,正确信号的值也不对乘2才能对上。 总结原因。 将AD7606_read_data里的延时参数修改为3、4、4问题解决。

PanoFlow:学习360°用于周围时间理解的光流

1.摘要: 光流估计是自动驾驶和机器人系统中的一项基本任务,它能够在时间上解释交通场景。自动驾驶汽车显然受益于360提供的超宽视野(FoV)◦ 全景传感器。 然而,由于全景相机独特的成像过程,为针孔图像设计…