亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用Python開發(fā)提取word所有表格信息的程序

 更新時(shí)間:2025年07月18日 08:40:18   作者:心一信息  
這篇文章主要為大家詳細(xì)介紹了如何使用Python開發(fā)一個(gè)可以提取word所有表格信息的程序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下

需要寫個(gè)批量提取表格信息的程序,來(lái)對(duì)這么多的表格進(jìn)行數(shù)據(jù)的提取。

首先仍然需要在終端窗口內(nèi)用pip install引入模塊。

以下是實(shí)現(xiàn)批量提取表格信息的程序源碼:

import os
import openpyxl
from tkinter import *
from tkinter import filedialog

# 定義UI界面
class App:
    def __init__(self, master):
        self.master = master
        master.title('Excel內(nèi)容查找器')
        master.geometry('350x600')

        # 創(chuàng)建文件夾選擇按鈕
        self.folder_button = Button(master, text='選擇文件夾', command=self.select_folder)
        self.folder_button.pack()

        # 創(chuàng)建查找內(nèi)容輸入框和按鈕
        self.search_label = Label(master, text='請(qǐng)輸入要查找的內(nèi)容:')
        self.search_label.pack()

        # 創(chuàng)建20個(gè)文本框,用于輸入需要查找的內(nèi)容
        self.search_entries = []
        for i in range(20):
            search_entry = Entry(master)
            search_entry.pack()
            self.search_entries.append(search_entry)

        # 創(chuàng)建導(dǎo)出路徑輸入框和按鈕
        self.export_label = Label(master, text='請(qǐng)選擇導(dǎo)出路徑:')
        self.export_label.pack()
        self.export_entry = Entry(master)
        self.export_entry.pack()
        self.export_button = Button(master, text='選擇路徑', command=self.select_export_path)
        self.export_button.pack()

        # 創(chuàng)建開始查找按鈕
        self.search_button = Button(master, text='開始查找', command=self.search)
        self.search_button.pack()

        # 創(chuàng)建狀態(tài)欄
        self.status_label = Label(master, text='')
        self.status_label.pack()

    # 選擇文件夾
    def select_folder(self):
        self.folder_path = filedialog.askdirectory()
        self.status_label.config(text=f'已選擇文件夾:{self.folder_path}')

    # 選擇導(dǎo)出路徑
    def select_export_path(self):
        export_path = filedialog.asksaveasfilename(defaultextension='.xlsx')
        self.export_entry.delete(0, END)
        self.export_entry.insert(END, export_path)

    # 查找指定內(nèi)容
    def search(self):
        # 獲取要查找的內(nèi)容列表
        search_texts = [entry.get().strip() for entry in self.search_entries if entry.get().strip()]

        if not search_texts:
            self.status_label.config(text='請(qǐng)至少輸入一個(gè)要查找的內(nèi)容')
            return

        # 獲取導(dǎo)出路徑
        export_path = self.export_entry.get().strip()
        if not export_path:
            self.status_label.config(text='請(qǐng)選擇導(dǎo)出路徑')
            return

        # 創(chuàng)建新的Excel文件
        export_wb = openpyxl.Workbook()
        export_ws = export_wb.active

        # 遍歷文件夾內(nèi)的所有Excel文件
        for filename in os.listdir(self.folder_path):
            if filename.endswith('.xlsx'):
                # 打開Excel文件
                filepath = os.path.join(self.folder_path, filename)
                wb = openpyxl.load_workbook(filepath)

                # 遍歷Excel文件中的所有工作表
                for sheetname in wb.sheetnames:
                    ws = wb[sheetname]

                    # 遍歷工作表中的所有單元格
                    for row in ws.iter_rows():
                        for cell in row:
                            for search_text in search_texts:
                                if search_text in str(cell.value):
                                    # 如果找到指定內(nèi)容,提取所需內(nèi)容和緊隨其后的表格數(shù)據(jù)
                                    extract_data(wb, sheetname, cell.row, filepath, search_text, export_ws)

        # 保存并關(guān)閉新的Excel文件
        export_wb.save(export_path)
        export_wb.close()

        self.status_label.config(text='查找完成')

# 提取所需內(nèi)容和緊隨其后的表格數(shù)據(jù)
def extract_data(wb, sheetname, row, filepath, search_text, export_ws):
    ws = wb[sheetname]

    # 提取所需內(nèi)容
    data = [search_text]
    for col in range(1, ws.max_column + 1):
        data.append(ws.cell(row=row, column=col).value)

    # 將數(shù)據(jù)寫入新的Excel文件
    export_ws.append(data)

# 創(chuàng)建UI界面并運(yùn)行程序
root = Tk()
app = App(root)
root.mainloop()

直接運(yùn)行測(cè)試一下,得到下面長(zhǎng)寬為350×600的UI界面:

選擇文件夾為可以選擇自己存放多個(gè)excel的文件夾,比如我這里選擇之前生成的名為13的文件夾:

然后選擇輸出路徑,并命名一個(gè)輸出的excel文件名稱,如下圖。

然后在這個(gè)基礎(chǔ)上在文本框內(nèi)輸入需要查找的內(nèi)容,這里我默認(rèn)寫了可查找內(nèi)容為12,其實(shí)可以寫入更多,通過(guò)修改源代碼可以實(shí)現(xiàn):

最后點(diǎn)擊開始查找,最下方提示信息會(huì)提示查找完成就說(shuō)明已經(jīng)找到自己需要的信息并提取到excel中。

我們打開excel查看一下得到的excel信息:

通過(guò)這個(gè)程序就不需要自己再這么多表格內(nèi)一個(gè)一個(gè)查找自己需要的內(nèi)容了,既費(fèi)時(shí)而且不準(zhǔn)確。

最后再講一下將python源碼封裝成的步驟,在python程序1中我有介紹用pyinstaller封裝的方法:教大家寫一個(gè)python的交互式.exe程序 。這里我介紹另外一種用自己比較習(xí)慣的方式進(jìn)行封裝的方法。

首先需要找到模塊的安裝路徑,比如我的是:C:\Users\楊東旭\PycharmProjects\pythonProject7\venv\Scripts 將上面的源碼拷貝到此路徑下:

在pycharm中使用pip命令安裝cx_Freeze,在命令行中輸入以下命令:pip install cx_Freeze

在Scripts 文件夾中創(chuàng)建一個(gè)名為setup.py的文件,下面是源碼

import sys
from cx_Freeze import setup, Executable

build_exe_options = {"packages": ["os"], "excludes": ["tkinter"]}

base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(
    name="程序名稱",
    version="1.0",
    description="My Application Description",
    options={"build_exe": build_exe_options},
    executables=[Executable("你的源碼.py名稱.py", base=base)]
)

注意這里的 程序名稱 和 你的源碼.py名稱 更改為自己對(duì)應(yīng)的程序和文件名

最后在..\pythonProject7\venv\Scripts 路徑下執(zhí)行:python setup.py build

會(huì)得到build名稱的文件夾,里面就有.exe可執(zhí)行文件。

到此這篇關(guān)于使用Python開發(fā)提取word所有表格信息的程序的文章就介紹到這了,更多相關(guān)Python提取word表格信息內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中的collections集合與typing數(shù)據(jù)類型模塊

    Python中的collections集合與typing數(shù)據(jù)類型模塊

    這篇文章介紹了Python中的collections集合與typing數(shù)據(jù)類型模塊,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • python 音頻和視頻合并自動(dòng)裁剪

    python 音頻和視頻合并自動(dòng)裁剪

    本文主要介紹了python 音頻和視頻合并自動(dòng)裁剪,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Python腳本實(shí)現(xiàn)音頻和視頻格式轉(zhuǎn)換

    Python腳本實(shí)現(xiàn)音頻和視頻格式轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了Python如何通過(guò)腳本實(shí)現(xiàn)音頻和視頻格式轉(zhuǎn)換,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • Python中try?except語(yǔ)句及實(shí)際應(yīng)用詳細(xì)解釋

    Python中try?except語(yǔ)句及實(shí)際應(yīng)用詳細(xì)解釋

    在Python中try和except是用于異常處理的關(guān)鍵字,它們可以捕獲程序運(yùn)行時(shí)可能出現(xiàn)的錯(cuò)誤,從而避免程序崩潰,這篇文章主要介紹了Python中try?except語(yǔ)句及實(shí)際應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2025-04-04
  • Python編程實(shí)現(xiàn)tail-n查看日志文件的方法

    Python編程實(shí)現(xiàn)tail-n查看日志文件的方法

    這篇文章主要介紹了Python編程實(shí)現(xiàn)tail-n查看日志文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python實(shí)現(xiàn)兩個(gè)經(jīng)緯度點(diǎn)之間的距離和方位角的方法

    python實(shí)現(xiàn)兩個(gè)經(jīng)緯度點(diǎn)之間的距離和方位角的方法

    今天小編就為大家分享一篇python實(shí)現(xiàn)兩個(gè)經(jīng)緯度點(diǎn)之間的距離和方位角的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • 詳解Python中列表數(shù)據(jù)的保存與讀取

    詳解Python中列表數(shù)據(jù)的保存與讀取

    列表是一種非常靈活的數(shù)據(jù)結(jié)構(gòu),它可以包含多種類型的元素,本文將介紹如何將一組列表保存到txt文件中,并提供相應(yīng)的讀取方法,希望對(duì)大家有所幫助
    2024-04-04
  • python使用tcp傳輸圖片數(shù)據(jù)

    python使用tcp傳輸圖片數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了python使用tcp傳輸圖片數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 解決django跨域的問(wèn)題小結(jié)(Hbuilder X)

    解決django跨域的問(wèn)題小結(jié)(Hbuilder X)

    使用Django開發(fā)時(shí),可能會(huì)遇到跨域問(wèn)題,尤其是當(dāng)后端與HbuilderX開發(fā)的前端結(jié)合使用時(shí),解決此問(wèn)題的關(guān)鍵步驟包括安裝django-cors-headers庫(kù),并在Django的settings.py中進(jìn)行相應(yīng)配置,本文給大家介紹解決django跨域的問(wèn)題小結(jié),感興趣的朋友一起看看吧
    2024-10-10
  • django和vue實(shí)現(xiàn)數(shù)據(jù)交互的方法

    django和vue實(shí)現(xiàn)數(shù)據(jù)交互的方法

    今天小編就為大家分享一篇django和vue實(shí)現(xiàn)數(shù)據(jù)交互的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08

最新評(píng)論