Как открыть файл Excel в Python?

Как открыть файл, который является файлом Excel для чтения в Python?

Я открыл текстовые файлы, например, sometextfile.txt с помощью команды чтения. Как это сделать для файла Excel?

Ответ 1

вы можете использовать pandas package.

Когда вы работаете с файлом excel с несколькими листами, вы можете использовать:

import pandas as pd
xl = pd.ExcelFile(path + filename)
xl.sheet_names

>>> [u'Sheet1', u'Sheet2', u'Sheet3']

df = xl.parse("Sheet1")
df.head()

df.head() будет печатать первые 5 строк вашего файла Excel

Если вы работаете с файлом Excel с одним листом, вы можете просто использовать:

import pandas as pd
df = pd.read_excel(path + filename)
print df.head()

Ответ 2

Попробуйте библиотеку xlrd.

[Изменить] - из того, что я вижу из вашего комментария, что-то вроде приведенного ниже фрагмента может сделать трюк. Я предполагаю, что вы просто ищете один столбец для слова "john", но вы можете добавить больше или сделать это более общей функцией.

from xlrd import open_workbook

book = open_workbook('simple.xls',on_demand=True)
for name in book.sheet_names():
    if name.endswith('2'):
        sheet = book.sheet_by_name(name)

        # Attempt to find a matching row (search the first column for 'john')
        rowIndex = -1
        for cell in sheet.col(0): # 
            if 'john' in cell.value:
                break

        # If we found the row, print it
        if row != -1:
            cells = sheet.row(row)
            for cell in cells:
                print cell.value

        book.unload_sheet(name) 

Ответ 3

Это не так просто, как открытие простого текстового файла, и для этого потребуется какой-то внешний модуль, поскольку для этого ничего не требуется. Вот несколько вариантов:

http://www.python-excel.org/

Если возможно, вам может потребоваться экспортировать таблицу Excel в виде файла CSV, а затем использовать встроенный модуль csv python для чтения:

http://docs.python.org/library/csv.html

Ответ 4

Там openpxyl пакет:

>>> from openpyxl import load_workbook
>>> wb2 = load_workbook('test.xlsx')
>>> print wb2.get_sheet_names()
['Sheet2', 'New Title', 'Sheet1']

>>> worksheet1 = wb2['Sheet1'] # one way to load a worksheet
>>> worksheet2 = wb2.get_sheet_by_name('Sheet2') # another way to load a worksheet
>>> print(worksheet1['D18'].value)
3
>>> for row in worksheet1.iter_rows():
>>>     print row[0].value()

Ответ 6

Этот код работал у меня с Python 3.5.2. Он открывается и сохраняет и превосходит. В настоящее время я работаю над тем, как сохранять данные в файл, но это код:

import csv
excel = csv.writer(open("file1.csv", "wb"))

 

Ответ 7

import pandas as pd 
import os 
files = os.listdir('path/to/files/directory/')
desiredFile = files[i]
filePath = 'path/to/files/directory/%s'
Ofile = filePath % desiredFile
xls_import = pd.read_csv(Ofile)

Теперь вы можете использовать мощность pandas DataFrames!