mata_cheng 2024-01-22 17:14 采纳率: 0%
浏览 21
已结题

python 编程实现 GUI界面 选取目标文件 对文件数据进行格式转换的问题

在工作中,每天都有来自各个部门的日报excel数据,需要将日报里面的数据作为原始资料 上传到平台,实现自动化报表。

问题:在上传数据过程中,因为各部门日报数据格式(日期格式)不符合日期格式,是文本格式,导致上传暂停,需要手动检查修改以后,再上传,这样每日都需要重复检查修改,很低效。

解决思路:通过python编程,程序自动将日报表格日期数据自动转换为日期格式,减少人工手动重复修改。

目标:编程没有整体规划思路,就是以“问题”出发去解决。代码实现了自动读取目标路径下的 日报表格,自动转换数据。但是进一步,希望生成一个GUI应用程序,在任何计算机电脑上,没有编译平台的情况下,实现数据转换。

编程实现问题:数据转换的代码已经完成,程序运行思路是:1. 代码中写好目标文件的文件地址2.循环读取文件地址,并打开文件内容,进行数据转换后保存。

所以下一步,如何将代码在创建的“按钮”里面实现,需要什么函数?如何实现,通过按键 选中目标文件地址,将地址保存到已完成代码中的 地址变量,将两部分程序结合,实现最终的 可视化应用程序。

import pandas as pd
from datetime import datetime
import numpy as np
import openpyxl 
import os 
# 指定要遍历的目录路径
directory = 'C:\\Users\\YJZX\Desktop\\新建文件夹 (2)'
# 获取该目录下所有文件及子目录的列表
file_list = []
for root, dirs, files in os.walk(directory):
    for file in files:
                file_list.append(os.path.join(root, file))
# 打印结果
print("遍历得到的文件列表如下:")
for file in file_list:
    print(file)
#转换上钻通知下达日期
for file in file_list:
    df=pd.read_excel(file,sheet_name='2.钻井',header=[2],engine='openpyxl',index_col=0)
    data=df.values  #获取“2.钻井”工作表
    lis=df['上钻通知下达日期'].values
    var=len(lis)
    lis3=pd.to_datetime(lis,format='%Y/%m/%d') 
    wb=openpyxl.load_workbook(file)
    ws=wb['2.钻井']    
    if pd.isna(lis3[var-1]) is True:
                      
        #转换上钻通知下达日期
        for i in range(var):
              j=0
              j=i+1
              if j<(var-1):
                  ws.cell(row=j+4,column=9,value=lis3[j])
                     
        #转换搬迁开始日期
        lis=df['搬迁开始日期'].values
        lis3=pd.to_datetime(lis,format='%Y/%m/%d')     
        j=0
        for i in range(var):
             j=i+1
             if j<(var-1):
                  ws.cell(row=j+4,column=10,value=lis3[j])
        print('\n转换结束1',file)
        wb.save(file)

​​

img

  • 写回答

23条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-01-22 17:15
    关注

    引自免费微信小程序:皆我百晓生

    为了实现你的目标,你可以使用Python的GUI库(例如Tkinter、PyQt、wxPython)来创建一个用户界面。在这个界面中,你可以添加一个按钮用于选择目标文件。

    以下是一个使用Tkinter库的示例代码,其中包含了按钮和文件选择的功能:

    import tkinter as tk
    from tkinter import filedialog
    
    def select_file():
        file_path = filedialog.askopenfilename()
        # 将文件地址保存到已完成代码中的地址变量
        target_file.set(file_path)
    
    # 创建主窗口
    root = tk.Tk()
    root.title("文件选择器")
    
    # 创建按钮
    select_button = tk.Button(root, text="选择文件", command=select_file)
    select_button.pack()
    
    # 显示选择的文件地址
    target_file = tk.StringVar()
    target_file_label = tk.Label(root, textvariable=target_file)
    target_file_label.pack()
    
    # 运行主循环
    root.mainloop()
    

    你可以将这段代码添加到你的程序中,然后在转换数据的部分调用target_file.get()来获取选择的文件地址,这样就将文件选择功能和数据转换功能结合在了一起,实现了最终的可视化应用程序。+ 注意:这只是一个示例代码,你可以根据自己的需求进行修改和定制。另外,你需要安装Tkinter库,并且根据你的Python版本选择对应的Tkinter安装包。

    评论

报告相同问题?

问题事件

  • 系统已结题 1月30日
  • 创建了问题 1月22日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集