Получить данные из файла Excel и распечатать их на консоли? - PullRequest
0 голосов
/ 13 февраля 2020

Это код, который мне нужен для извлечения данных из файла Excel:

import xlrd

# Give the location of the file
location = ("C:/Users/congo/Documents/PythonScriptTest.xlsx")

# To open workbook
workbook = xlrd.open_workbook(location)
sheet = workbook.sheet_by_index(0)

# Looping through rows and columns of excel file
for i in range(sheet.nrows):
    for j in range(sheet.ncols):
        print(sheet.cell_value(i, j))

Работает, но данные не печатаются, так как я хочу напечатать. Вот как это печатается: enter image description here

Но я хочу, чтобы он печатался в том же порядке строк и столбцов, что и в Excel. Вот как они упорядочены в Excel:

enter image description here

Как можно распечатать данные в строках и столбцах, как в Excel? Спасибо!

Ответы [ 3 ]

1 голос
/ 13 февраля 2020

Вы перебираете строки и столбцы и печатаете каждый элемент, чтобы напечатать полную строку, вы можете сделать что-то вроде

# Looping through rows and columns of excel file
for i in range(sheet.nrows):
    for j in range(sheet.ncols):
        print(sheet.cell_value(i, j), end='\t')
    print('\n')

Альтернатива состоит в использовании:

print(pd.read_excel('PythonScriptTest.xlsx'))
1 голос
/ 13 февраля 2020

Pandas - очень хороший инструмент для импорта данных Excel в Python. Это должно работать:

import pandas as pd

df = pd.read_excel("C:/Users/congo/Documents/PythonScriptTest.xlsx")

print(df)
0 голосов
/ 13 февраля 2020

Каждый оператор print печатает символ новой строки, заставляя консоль переходить к началу следующей строки.

Если вы хотите печатать больше в той же строке, либо объедините то, что вы хотите печатать в одной команде, например:

print('a', 'b')

или использовать другую команду, например:

import sys

sys.stdout.write('a')
sys.stdout.write('b')

Если вы используете sys.stdout.write(), помните, что написание '\n' будет печатать только новую строку как print делает в конце.

sys.stdout.write('just like print\n')

Вы также можете указать print не писать новую строку:

print('a', end='')
...