如何使用python读取excel中的一列

问题描述 投票:5回答:5

我想在excel的一列中读取数据,这是我的代码:

import xlrd

file_location = "location/file_name.xlsx"

workbook = xlrd.open_workbook(file_location)

sheet = workbook.sheet_by_name('sheet')

x = []

for cell in sheet.col[9]:

    if isinstance(cell, float):

        x.append(cell)

print(x)

这是错误的,因为表单中没有名为col [col.num]的方法,但我只是想从第8列(H列)中提取数据,我该怎么办?

python excel
5个回答
2
投票

您可以像这样获取第8列的值:

for rownum in range(sheet.nrows):
    x.append(sheet.cell(rownum, 7))

2
投票

如果您没有使用xlrd锁定,我可能会使用pandas,这在处理来自任何地方的数据时非常好:

import pandas as pd

df = pd.ExcelFile('location/test.xlsx').parse('Sheet1') #you could add index_col=0 if there's an index
x=[]
x.append(df['name_of_col'])

然后,您可以将新提取的列写入带有pandas df.to_excel()的新excel文件


0
投票

到目前为止,使用xlrd获取列中所有值的最简单方法是使用col_values()工作表方法:

x = []
for value in sheet.col_values(8):
    if isinstance(value, float):
        x.append(value)

(注意,如果你想要列H,你应该使用7,因为索引从0开始。)

顺便说一句,您可以使用col()来获取列中的单元格对象:

x = []
for cell in sheet.col(8):
    if isinstance(cell.value, float):
        x.append(cell.value)

找到这个东西的最佳地方是官方的tutorial(这是xlrdxlwtxlutils的一个不错的参考)。您当然也可以查看documentation和源代码。


0
投票

我建议这样做:

import openpyxl
fname = 'file.xlsx'
wb = openpyxl.load_workbook(fname)
sheet = wb.get_sheet_by_name('sheet-name')
for rowOfCellObjects in sheet['C5':'C7']:
  for cellObj in rowOfCellObjects:
    print(cellObj.coordinate, cellObj.value)

结果: C5 70.82 C6 84.82 C7 96.82

注意:fname指的是excel文件,get_sheet_by_name('sheet-name')指的是所需的工作表,并且在列中提到['C5':'C7']范围。

查看link了解更多详情。代码段也取自此处。


0
投票

XLRD很好,但是对于这种情况你可能会发现Pandas很好,因为它有通过使用运算符'[]'来选择列的例程

您的上下文的完整工作代码将是

import pandas as pd
file_location = "file_name.xlsx"
sheet = pd.read_excel(file_location)
print(x['column name of col 9'])
© www.soinside.com 2019 - 2024. All rights reserved.