2017-03-03 11 views
0

我的問題如下: 我的程序的目的:重複從另一個excel文件中的數據3次,然後再轉到下一組數據。 例如 所需的輸出:在excel中重複行無法使用這組代碼

23 25 27 
    23 25 27 
    23 25 27 
    28 4 21 
    28 4 21 
    28 4 21 

我當前(誤差)輸出是: 例如 錯誤輸出:

23 25 27 
    28 4 21 

我的代碼如下。爲什麼我不能僅僅通過重複代碼並相應地更改行號來爲列K,L和M重複我的代碼3次?它顯示錯誤輸出而不是所需的輸出。 :( 非常感謝你的閱讀和幫助!

#>>>>>>>>>>>SEPERATE LIST SHOWN IN PYTHON PROGRAM (i.e. dataX, data Y, data Z), -START- <<<<<<<<<<<<<<<# 

    CRS=[] 
    dataX=[sheet.cell_value(1, col) for col in range(sheet.ncols)] 
    dataY=[sheet.cell_value(2, col) for ju in range(4)for col in range(sheet.ncols)] 
    dataBin = [sheet.cell_value(6, col) for col in range(sheet.ncols)] 

    for nm in range (int(ND)):   #for nm in range of ND 
     CRS.append((dataX[nm+6],dataY[nm+6],dataBin[nm+6])) 

    print CRS 
    print "" 

    workbook = xlwt.Workbook() 
    sheet = workbook.add_sheet('sheet1') 

    for index, value in enumerate(dataBin): 

     sheet.write(3, index, value) 
     sheet.write(1, index, value) 
     sheet.write(2, index, value) 

(下續)#ERROR最有可能從這裏開始

  for np in range(int(ND)):   

     #COLUMN K = X COORDINATE 
      sheet1.write(np+30,10,CRS[np][0]) #np+30 == row. 10== column K 
      sheet1.write(np+31,10,CRS[np][0]) #np+31 == row. 11== column K, 
      sheet1.write(np+32,10,CRS[np][0]) #np+32 == row. 12== column K 

     #COLUMN L = Y COORDINATE 
      sheet1.write(np+30,11,CRS[np][1]) #np+30 == row. 10 == column L 
      sheet1.write(np+31,11,CRS[np][1]) #np+31 == row. 11 == column L 
      sheet1.write(np+32,11,CRS[np][1]) #np+32 == row. 12 == column L 

     #COLUMN M = SOFT BIN 
      sheet1.write(np+30,12,CRS[np][2]) #np+30 == row. 10 == column M 
      sheet1.write(np+31,12,CRS[np][2]) #np+31 == row. 11 == column M 
      sheet1.write(np+32,12,CRS[np][2]) #np+32 == row. 12 == column M 

回答

0

在循環時,NP = 10,你的三排( np + 30,np + 31,np + 32)將等於行40,41和42.

在np = 11的下一個循環中,您的三行將等於41,42,43,因此會覆蓋兩行以前的產品系列

我希望如果你看看你的輸出,最後的項目將按照需要重複三次。

嘗試通過3

(np*3)+30... 

10*3+30=60 
10*3+31=61 
10*3+32=62 
11*3+30=63 
11*3+31=64 
11*3+32=65 
12*3+30=66 etc 
+0

乘以NP感謝您的幫助很大!通過創建一個循環,我發現了另一種方法。即np + = 3,而不是必須3次。但我仍然會給你打勾:) – Sandy