2017-10-13 13 views
-1

正しい形式で表示されていないExcelからデータを取得するときに、pythonでデータを読み取ろうとしました。ここでpython openpyxlで整列が正しい形式になっていない

は私のサンプルであるデータをエクセル:ここ

enter image description here

は私のコード

import os 
os.getcwd() 
import openpyxl 
wb=openpyxl.load_workbook('sample.xlsx') 
type(wb) 
wb.get_sheet_names() 
sheet=wb.get_sheet_by_name('Sheet1') 
sheet.title 
columns=3 
rows=3 
for r in range(1,rows+1): 
    for c in range(1,columns+1): 
      d=sheet.cell(row=r,column=c) 
      print('%-8s'%d.value , end='') 
      print('') 

である私は、この

ID  Name age  
1  Sam  12  
2  Arun 12 

のような出力をしたいが、私はこのように取得する:

ID  
Name  
age  
1  
Sam  
12  
2  
Arun  
12 

答えて

0

問題は2番目のprint('')であり、データを表示した後に不要な改行が発生します。

for r in range(1,rows+1): 
    for c in range(1,columns+1): 
     d=sheet.cell(row=r,column=c) 
     print('%-8s'%d.value , end='') 
     print('')       <------There's the error 

各行の代わりに各データの印刷後に実行されます。

for r in range(1,rows+1): 
    for c in range(1,columns+1): 
     d=sheet.cell(row=r,column=c) 
     print('%-8s'%d.value , end='') 
    print('') 

はちょうど私の問題を解決するための各ライン

+0

おかげAdalcar後にそれを呼び出すために戻って1つのインデントレベルを引き出します。 – sam

関連する問題