Excel文本内容抽取工具[Python]

#创作灵感#

  • 一堆Excel文件,每个打开看太累了。写个脚本直接显示里面的内容多好。
  • 最好这些内容可以直接复制到剪切板,方便以后编辑修改。
  • 只需要将文件拖动到全屏置顶的文本框内,就能弹出Excel里的内容。
  • 支持一次选取多个文件。

开干!

一、需要导入并安装这些包:【需要使用tkinter】

python 复制代码
pip install windnd
pip install pywin32
pip install openpyxl

二、核心抽取Excel文件的代码:

python 复制代码
if file_path[-4:]!='xlsx' and file_path[-3:]!='xls':
      showinfo("error","请选择Excel文件!")
      return ''
# 加载工作簿
workbook = openpyxl.load_workbook(file_path)

sheetnamelist = workbook.sheetnames
extracted_text = ""

# 遍历所有的sheet
for tmp_name in sheetnamelist
    sheet = workbook[tmp_name]
    extracted_text = extracted_text + '\n' + tmp_name + '\n'
    # 遍历工作表的每一行和每一列,提取文本内容
    for row in sheet.iter_rows(values_only=True):
          extracted_text = extracted_text + '\n'
          for cell in row:
               if isinstance(cell, str):
                     extracted_text = extracted_text + cell + ','
return extracted_text

三、使用文件拖放工具,来处理拖放操作:

python 复制代码
 windnd.hook_dropfiles(self,func=self.on_drop) #使用windnd组件完成拖放。

四、将Excel文件里的内容弹出为文本框,并自动复制到剪切板

python 复制代码
class MyContentDialog(tk.Toplevel):
    def __init__(self, parent, d_btns={}, title='My Content',content=''):
        tk.Toplevel.__init__(self, parent)

        self.parent = parent
        self.name = title
        self.text_area = None
        self.btns = []
        self.text_size = (60, 20)
        self.btn_size = (16, 1)

        self.transient(parent)  # 去掉最大最小化按钮
        self.title(title)

        self.protocol("WM_DELETE_WINDOW", self.cancel)
        if not d_btns:
            d_btns = {'OK': self.cancel}
        self.init_input_box(d_btns,content)


    def cancel(self):
        self.parent.path_text.delete('0.0', 'end')
        self.parent.path_text.insert('insert', '\n将Excel文件拖至本框内:\n')
        self.destroy()
        # self.withdraw()
        # self.parent.grab_set()

    def init_input_box(self, d_btns,content):
        w, h = self.text_size
        # 初始化文本框
        if self.text_area: self.text_area.destroy()
        self.text_area = scrolledtext.ScrolledText(self, width=w, height=h)
        self.text_area.grid(row=0, column=0, columnspan=len(d_btns), padx=10, pady=5)
        self.text_area.focus()
        self.text_area.insert('end',content) # 末尾插入
        # self.text_area.insert('insert', content)  # #光标插入

        w, h = self.btn_size
        for name, cmd in d_btns.items():
            # 初始化按钮
            btn = Button(self, text=name, width=w, height=h)
            btn.grid(row=1, column=i, pady=5)
            btn.configure(command=cmd)
            self.btns.append(btn)


    def bind_btn_cmds(self, btn_cmds):
        for i, btn in enumerate(self.btns):
            btn.configure(command=btn_cmds[i])

    def show(self):

        self.grab_set()
        self.deiconify()
        self.update()

五、窗口全屏置顶:

python 复制代码
class ExtractorApp(tk.Tk):

    def __init__(self):
        super().__init__()
        self.title("")
        self.geometry("500x100+600+0")  # 初始大小

        self.lift()
        self.attributes("-topmost", True)
        self.overrideredirect(1)  # 为1时,Windows平台标题栏隐藏。

六、完整代码:

Excel文本内容抽取工具Python资源-CSDN文库

相关推荐
終不似少年遊*10 分钟前
【AI Coding实战方法论】从计划协作到架构护栏,一套能长期复用的工程流程
人工智能·python·团队开发·ai编程·ai coding·skills·上下文管理
lusklusklusk11 分钟前
Python 全局变量与局部变量区别——global 关键字、__main__ 块与作用域示例
开发语言·前端·python
马剑威(威哥爱编程)25 分钟前
Python 智能体开发实战 01:装了三遍环境还在报错?虚拟环境和 DeepSeek 一次配到位
开发语言·人工智能·python·agent
octopus_c29 分钟前
C++ 入门
开发语言·c++·算法
卷无止境30 分钟前
Skill 的安全边界在哪里:风险来源、验证思路与用户可用的防线
后端·python
TomEval33 分钟前
【测AI】第22篇:Agent 系统测试方法 — AI 学会“动手“了
人工智能·python·prompt·aigc·测试用例
步行cgn1 小时前
JSON.stringify 详解:把 JavaScript 对象变成 JSON 字符串
开发语言·javascript·json
速易达网络1 小时前
如何“训练”一个 .task 模型
python
PiaoKe___1 小时前
云手机技术解析:从 ARM 虚拟化到 Python 自动化实战
python·智能手机·自动化
学习论之费曼学习法1 小时前
无人值守AI内容矩阵实战(10):Windows 上让 Python 进程 7×24 活着
人工智能·windows·python·矩阵·powershell·进程守护