python openpyxl 表格累加 pyinstaller 打包

昨天的累计加上今天的累计     pyinstaller  用pip安装最好选早上,晚上使用高峰,下载了好几次也不成功

系统64的就用64的pyinstaller 否则打包错误

pyinstaller -F test.py 单文件

如果 pyinstaller test.py  这个打包会生成整体文件,并且代码文件以后可以直接运行,修改后也不需要再重新打包

import openpyxl
import sys
import msvcrt
import os
#from openpyxl.styles import Font
try:
      name = input("把程序放到表格所文件夹,关闭表格,已填入数据的表格名称是")
      path1 = os.path.abspath('.')                                #找到所在路径
      path0 = os.path.join(path1,name+'.xlsx')              #加入输入的名字 拼接
      #wb0=openpyxl.load_workbook ("E:\\pythion\\"+name+".xlsx")
      wb0=openpyxl.load_workbook (path0)               #直接打开路径
      ws0=wb0.active
      if ws0['H20'].value != None:
            print("表格名称输入有误输入D退出")
            while True:
                  if ord(msvcrt.getch()) in [68, 100]:
                        print("1111")
                        sys.exit()
                        break
      print("成功找到了表"+name)
except OSError:
      print("没找到表"+name+"输入D退出")
      while True:
                  if ord(msvcrt.getch()) in [68, 100]:
                        sys.exit()
                        break
try:
      name0=str(int(name)-1)
      path = os.path.join(path1,name0+'.xlsx')
      wb=openpyxl.load_workbook (path)
      ws=wb.active
except OSError:
      print("没找到原始表"+name0+"输入D退出")
      while True:
                  if ord(msvcrt.getch()) in [68, 100]:
                        sys.exit()
                        break

def  isNone(ab):
      if ab == None :
            ab=0
            return (ab)
      else :            
            return (ab)
row_N=['4','5','6','7','8','9']
for row_cell in row_N:
      ws0['H'+row_cell].value=0
      for R_roll in ws0['D'+row_cell:'G'+row_cell]:
                  for each_cell in R_roll:
                        ws0['H'+row_cell].value +=isNone(each_cell.value)
                        ws0['I'+row_cell].value=isNone(ws0['H'+row_cell].value)+isNone(ws['I'+row_cell].value)
                        '''
                        if each_cell.value ==None :
                              continue
                              ws0['I'+row_cell].value=isNone(ws['I'+row_cell].value)
                        else:
                              ws0['H'+row_cell].value  += each_cell.value
                              ws0['I'+row_cell].value=ws0['H'+row_cell].value+ws['I'+row_cell].value
                        '''
      if ws0['H'+row_cell].value==0 :
            ws0['H'+row_cell].value=None
            ws0['I'+row_cell].value=None
            
col_N=['D','G','E','F','G','H']
for col_cell in col_N:
      ws0[col_cell+'20'].value=0
      ws0[col_cell+'21'].value=0
      for E_col in ws0[col_cell+'4':col_cell+'9']:
                  for each_cell in E_col:
                        if each_cell.value ==None :
                              continue
                        else:
                              ws0[col_cell+'20'].value  += each_cell.value
      if ws0[col_cell+'20'].value==0 :
            ws0[col_cell+'21'].value=ws[col_cell+'21'].value
            ws0[col_cell+'20'].value=None
      else:
            ws[col_cell+'21'].value= isNone(ws[col_cell+'21'].value)
            ws0[col_cell+'21'].value  = ws0[col_cell+'20'].value+ws[col_cell+'21'].value
      if ws0[col_cell+'21']==ws0['H21']:
            ws0['I21'].value=ws0['H21'].value
            ws0['I21'].value=ws0['I21'].value+isNone(ws['I21'].value)
            ws0['H21'].value=None
'''           
row_N=['5','7','9','18','20']
for row_cell in row_N:
      for R_roll in ws0['N'+row_cell:'Q'+row_cell]:
                  for each_cell in R_roll:
                        if each_cell.value ==None :
                              ws0['N'+row_cell].value=ws['N'+row_cell].value
                        else:
                              ws[col_cell+'21'].value= isNone(ws[col_cell+'21'].value)
                              ws0['N'+row_cell].value  = ws0['N'+str(int(row_cell)-1)].value+ws0['N'+row_cell].value
'''
ws0['O4'].value=ws0['E20'].value
ws0['N4'].value=ws0['D20'].value
ws0['O4'].number_format="#,##0"
ws0['N4'].number_format="#,##0"
col_I=['N','O','P','Q']
row_H=['5','7','9','20']
for row_cell in row_H:
      for col_cell in col_I:
            ws0[col_cell+row_cell].value=isNone(ws0[col_cell+str(int(row_cell)-1)].value)+ isNone(ws[col_cell+row_cell].value)
            if ws0[col_cell+row_cell].value==0:
                  ws0[col_cell+str(int(row_cell)-1)].value=None
                  ws0[col_cell+row_cell].value=None                      
#累加

wb0.save("E:\\pythion\\"+name+".xlsx")
print("计算成功!!!输入D退出")
while True:
      if ord(msvcrt.getch()) in [68, 100]:
            sys.exit()
            break
'''
for i in range(4,10):
            a='D'+str(i)
            b='E'+str(i)
            c='G'+str(i)
            if ws0[a].value ==None:
                  ws0[a].value=0
                  if ws0[b].value==None:
                        ws0[a].value = None
                        print(ws0[c].value)
                  else:
                        ws0[c].value=ws0[a].value+ws0[b].value
                        print(ws0[c].value)
            elif  ws0[b].value==None:
                  ws0[b].value=0
                  ws0[c].value=ws0[a].value+ws0[b].value
                  ws0[b].value=None
                  print(ws0[c].value)
            else:
                  ws0[c].value=ws0[a].value+ws0[b].value
                  print(ws0[c].value)
wb0.save(r"E:\pythion\170101.xlsx")
'''
'''
def  isNone(ab):
      if ab == None :
            ab=0
            return (ab,None)
      else :            
            return (ab,ab)
print(isNone(None))
for i in range(4,10):
            a='D'+str(i)
            b='E'+str(i)
            c='H'+str(i)
            ws0[a].value,ja= isNone(ws0[a].value)
            ws0[b].value,jb= isNone(ws0[b].value) 
            ws0[c].value=ws0[a].value+ws0[b].value
            ws0[a].value=ja
            ws0[b].value=jb
            if ws0[c].value==0:
                  ws0[c].value=None
            print(ws0[c].value)
'''

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值