程序完成的功能是把一个文件夹里的所有excel表格的第三列 都copy出来 粘贴到另外一个文件夹下的唯一一个excel表格中,即新excel表格中的每一列数据(从第三列开始)分别来自源文件的第三列。
我再pycharm里编写的, 第一次编写的是处理30个excel的表格的, 达到目的。随后把代码复制一份,修改了路径,新建了一个python, 处理45个表格,i<45 但是这个新的程序只算到i=13就停止了,请大家帮我看下 这是什么原因,谢谢。
import os
import openpyxl
from openpyxl import Workbook
from openpyxl import load_workbook
import os
import openpyxl
from openpyxl import Workbook
from openpyxl import load_workbook
path = r'C:\Users\gaoqiang5\Desktop\mmW_E_Raw\CDF\M0_CDF_xlsx\Dual_Beam'
Beam_file = os.listdir(path)
CDF = load_workbook('C:\\Users\\gaoqiang5\\Desktop\\mmW_E_Raw\\CDF\\M0_CDF_calcu\\Dual_Beam\\EIRP_all_dual_beam.xlsx')
CDF_sheet = CDF['Sheet1']
sheet = CDF.active
k=3
i=0
while i< 45 & k< 46:
print(Beam_file[i]) #一次调取源文件夹中的excel
dir_path = 'C:\\Users\\gaoqiang5\\Desktop\\mmW_E_Raw\\CDF\\M0_CDF_xlsx\\Dual_Beam\\'
dir_path = dir_path + Beam_file[i]
print(dir_path)
Beam_Raw= load_workbook(dir_path)
sh_name = Beam_Raw.sheetnames
Beam_Raw_sheet = Beam_Raw[sh_name[0]]
sheet = Beam_Raw.active
a = sheet.max_row
a = a+1
print(a)
j = 1 #数据行
Beam_Raw_i = []
while j < a :
Beam_Raw_i.insert(j-1, Beam_Raw_sheet.cell(j+1,3).value)
#print(Beam_Raw_i[j-1])
CDF_sheet.cell(j+1,k).value = Beam_Raw_i[j-1]
j=j+1
k=k+1
i=i+1
print(i)
print(k)
CDF.save('C:\\Users\\gaoqiang5\\Desktop\\mmW_E_Raw\\CDF\\M0_CDF_calcu\\Dual_Beam\\EIRP_all_dual_beam.xlsx')
本帖最后由 lirenbing01 于 2020-9-30 10:10 编辑 while i< 45 & k< 46:
把k<46删掉
你这里&是与的意思
相当于 (i<45)and(45&k)and(k<46)
当你k=16的时候 45&16=0 就退出循环了
|