基于python2.7 Tkinter 做一个小工具

1、源码:先写一个界面出来,放需要放入的点击事件的函数

# -*- coding:utf-8 -*-
import Tkinter
from Tkinter import *

import ExcleCount

#定义点击事件
def butonck():
    input_path = entry_input.get().strip()

    ExcleCount.excleCount_passenger(input_path)

top = Tkinter.Tk()
# 标题
top.title("excel计数工具")
# 窗口大小 长高用小写x隔开
top.geometry("400x200")
# 窗口基于屏幕的坐标 +x轴+y轴
top.geometry("+500+200")
# input_dir_text = Entry(top)


# 创建lab标签 填写文件的输入路径
label_input = Label(top, text="excle文件路径:", fg="red", font=("宋体", 12))
# 显示lab标签 网格布局 sticky=W #左对齐 E为右对齐 默认为中间对齐
label_input.grid(row=0, column=0, padx=6, pady=10)

# # 创建输入框,填写文件路径
entry_input = Entry(top, font=("宋体", 12))

# 显示输入框
entry_input.grid(row=0, column=1)

# 创建lab标签 填写文件的输入路径
# label_out = Label(top, text="口岸文件路径:", fg="red", font=("宋体", 12))
# # 显示lab标签 网格布局 sticky=W #左对齐 E为右对齐 默认为中间对齐
# label_out.grid(row=1, column=0)

# # 创建输入框,填写文件路径
# entry_out = Entry(top, font=("宋体", 12))
#
# # 显示输入框
# entry_out.grid(row=1, column=1)

# 创建按钮
button = Button(top, text="确定", font=("宋体", 15), command=butonck)
# 显示按钮
button.grid(row=2, column=1, padx=6, pady=10)
# 进入消息循环
top.mainloop()

2、处理excle的某个功能函数

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import xlsxwriter
import os
import win32com.client as win32


def excleCount_passenger(file_path):
    #定义输出的文件路径在原始文件的路径的同级目录新建一个outfile
    file_list = []
    out_file_path = os.path.join(os.path.abspath(os.path.dirname(file_path)+os.path.sep+"."), 'out_file')
    if not os.path.exists(out_file_path):
        os.makedirs(out_file_path)
    for root, dirs, files in os.walk(file_path):
        for name in files:
            excle_file_name = os.path.join(file_path, os.path.join(root, name))
            if name.endswith('.xls') or name.endswith('.xlsx'):
                #print(excle_file_name)
                file_list.append(excle_file_name)

    #打开excle

    excel = win32.Dispatch("Excel.Application")
    excel.Visible = False
    excel.DisplayAlerts = False

    xlBook = excel.Workbooks.Open(file_list[0])
    sheetname = xlBook.Sheets(1).Name
    # print ex

    sht = xlBook.Worksheets(sheetname)

    # sheet的行数
    nrows = sht.UsedRange.Rows.Count

    # sheet的列数
    ncols = sht.UsedRange.Columns.Count

    for j in range(1, ncols + 1):
        if sht.Cells(1, j).Value == u'证件号码':
            numOf = j

    set_data1 = set()
    for i in range(2, nrows + 1):

        travel = sht.Cells(i, numOf).Value.decode('utf-8')
        set_data1.add(travel)
    print("set1",set_data1)
   # xlBook 关闭读取excle进程
    xlBook.Close(SaveChanges=1)  # 关闭xlBook句柄

    del excel  # 这个地方很重要,杀死excel进程是这个地方起作用
    # 打开excle

    excel = win32.Dispatch("Excel.Application")
    excel.Visible = False
    excel.DisplayAlerts = False

    xlBook = excel.Workbooks.Open(file_list[1])
    sheetname = xlBook.Sheets(1).Name
    # print ex

    sht = xlBook.Worksheets(sheetname)

    # sheet的行数
    nrows = sht.UsedRange.Rows.Count

    # sheet的列数
    ncols = sht.UsedRange.Columns.Count
    for j in range(1, ncols + 1):
        if sht.Cells(1, j).Value == u'证件号码':
            numOf = j

    set_data2 = set()
    for i in range(2, nrows + 1):
        # print(sht.Cells(i, 10).Value,type(sht.Cells(i, 10).Value))
        # if isinstance(sht.Cells(i, 10).Value, unicode):
        travel = sht.Cells(i, numOf).Value.decode('utf-8')
        set_data2.add(travel)
    #print("set2",set_data2)
    # xlBook 关闭读取excle进程
    xlBook.Close(SaveChanges=1)  # 关闭xlBook句柄

    del excel  # 这个地方很重要,杀死excel进程是这个地方起作用

    end_list = []
    for i in set_data1:
        for j in set_data2:
            if i == j:
                end_list.append(i)
    #print(end_list)

    workbook = xlsxwriter.Workbook(os.path.join(out_file_path, 'out.xlsx'))
    worksheet = workbook.add_worksheet('sheet1')
    headings = [u'去重交集数据']  # 设置表头

    data = [end_list]
    worksheet.write_row('A1', headings)
    worksheet.write_column('A2', data[0])
    workbook.close()

3、打包代码

pyhton2.7
前提第三方库已经安装

pip install pyinstaller


打包的整个路径不能放中文
pyinstaller
-i Excel.ico -w -D excelTool.py ExcleCount.py -p C:\Python27\Lib\site-packages

上面的Excel.ico是图标文件图片 —D 参数后面第一个跟界面主函数 -p 加上环境依赖的第三方包
原文地址:https://www.cnblogs.com/xlovepython/p/14256978.html