【无标题】python tkinter openpyxl xlwt

                                                    运行界面效果图

 

 

ch

# -*- encoding:utf-8 -*-
import tkinter.filedialog
from tkinter import *
import os
import win32con
import win32ui
from openpyxl import load_workbook
import xlwt
import win32api
from concurrent.futures import ThreadPoolExecutor


def year_Execl(number1, number2):  # 年度主要商品排名
    xp_lit = ['主要商品', '金额(万元)']
    savapath = f'{number1}.xls'  # 或者输出文件的名称
    date = load_workbook(number2)  # 调用openpxl 模板生成对象
    sheet_list = date.worksheets  # 获得所有的sheet
    sheet_value = []
    for i in range(len(sheet_list)):
        sheet_value += list(sheet_list[i].values)[1:]  # 以列表的形式获得第一个除标题以外的所有数据
    zbp_list = year_list(sheet_value)
    # print(zbp_list)# 调用方法函数获取符合条件的数据
    workbook = xlwt.Workbook(encoding='utf-8')  # 调用方法函数获取符合条件的数据
    sheet_lable = workbook.add_sheet('年度主要商品排名.xlsx')
    style = xlwt.XFStyle()  # 定义单元格的格式
    al = xlwt.Alignment()
    al.horz = xlwt.Alignment.HORZ_CENTER
    al.vert = xlwt.Alignment.VERT_CENTER
    style.alignment = al
    font = xlwt.Font()
    font.bold = True
    font.height = 12 * 20
    font.name = "SimSun"
    style.font = font
    sheet_lable.write_merge(0, 0, 0, 1, "2023年", style)  # 写入年份
    for i, u in enumerate(xp_lit):  # 写入标题
        sheet_lable.write(1, i, u, style)
    all_key = zbp_list
    zj = 0
    for zj_list in range(len(zbp_list)):
        zj += zbp_list[zj_list][1]
    zbp_list.append(('总计', zj))
    for u in range(len(zbp_list)):
        sheet_lable.write(u + 2, 0, zbp_list[u][0])  # 写入主要商品名称
        sheet_lable.write(u + 2, 1, zbp_list[u][1] / 10000)  # 写入主要商品价格
    workbook.save(savapath)  # 保存数据
    win32api.MessageBox(0, f"已按要求整理完毕,文件输出路劲是:{savapath} \n共整理出{len(all_key)}条数据", "提示",
                        win32con.MB_OK)  # 保存后的提示
    open_file2.set(savapath)


def year_list(name):  # 年度主要商品排名----或者符合条件的数据
    pm_list = []
    fh_list = []
    txj = 0
    dic_list = {}
    for mysql in name:
        fh_list.append(list(mysql))
    ########for i in range(len(fh_list)):  # 更改47列为空属性的值
    for i in range(len(fh_list)):
        if fh_list[i][47] is None:
            fh_list[i][47] = fh_list[i][58]
    for i in range(len(fh_list)):  # 提取第47列的值
        pm_list.append(fh_list[i][47])
    list_pm = set(pm_list)
    for o in list_pm:
        for i in range(len(fh_list)):  # 判断47列和36列的值是否为None
            if fh_list[i][47] is o:
                if fh_list[i][46] is None:
                    continue
                elif fh_list[i][36] is None:
                    continue
                else:
                    lk = fh_list[i][36] * fh_list[i][46]
                    txj += lk
        dic_list[o] = txj
        txj = 0
    all_list = sorted(dic_list.items(), key=lambda x: x[1], reverse=True)[:6]
    return all_list
    #####################


def trade_Volume(number1, number2):  # 
    zbp_name = ['RBDFFN

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值