在python openpyxl中,Align的格式不正确

时间:2017-10-13 07:45:59

标签: python python-3.x openpyxl

我在python中尝试了一个程序,当我从Excel中检索数据时,它没有以正确的格式显示来读取excel中的数据。

以下是我的示例Excel数据:

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  

1 个答案:

答案 0 :(得分:0)

问题在于第二个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('')

只需将其缩回一个缩进级别,在每行后调用它