openpyxl - 只读取python中excel文件中的一列?

lel*_*der 18 python excel openpyxl

我想从电子表格中仅提取A列.我有以下代码,但它从所有列中提取.

from openpyxl import Workbook, load_workbook

wb=load_workbook("/home/ilissa/Documents/AnacondaFiles/AZ_Palmetto_MUSC_searchterms.xlsx", use_iterators=True)
sheet_ranges=wb['PrivAlert Terms']

for row in sheet_ranges.iter_rows(row_offset=1): 
    for cell in row:
        print(cell.value)
Run Code Online (Sandbox Code Playgroud)

ZLN*_*LNK 13

如果您使用openpyxl读取一个或多个列,这是以前答案的替代方法

import openpyxl

wb = openpyxl.load_workbook('origin.xlsx')
first_sheet = wb.get_sheet_names()[0]
worksheet = wb.get_sheet_by_name(first_sheet)

#here you iterate over the rows in the specific column
for row in range(2,worksheet.max_row+1):  
    for column in "ADEF":  #Here you can add or reduce the columns
        cell_name = "{}{}".format(column, row)
        worksheet[cell_name].value # the value of the specific cell
        ... your tasks... 
Run Code Online (Sandbox Code Playgroud)

我希望这很有用.


小智 11

在我看来要简单得多

from openpyxl import Workbook, load_workbook
wb = load_workbook("your excel file")
source = wb["name of the sheet"]
for cell in source['A']:
    print(cell.value)
Run Code Online (Sandbox Code Playgroud)


小智 9

使用openpyxl

from openpyxl import load_workbook
# The source xlsx file is named as source.xlsx
wb=load_workbook("source.xlsx")

ws = wb.active
first_column = ws['A']

# Print the contents
for x in xrange(len(first_column)): 
    print(first_column[x].value) 
Run Code Online (Sandbox Code Playgroud)


Tht*_*htu 2

我建议使用 pandas 库。

import pandas as pd
dataFrame = pd.read_excel("/home/ilissa/Documents/AnacondaFiles/AZ_Palmetto_MUSC_searchterms.xlsx", sheetname = "PrivAlert Terms", parse_cols = 0)
Run Code Online (Sandbox Code Playgroud)

如果您对 pandas 感到不舒服,或者出于某种原因需要使用 openpyxl,则代码中的错误是您没有仅选择第一列。您明确调用每行中的每个单元格。如果您只想要第一列,则只获取每行中的第一列。

for row in sheet_ranges.iter_rows(row_offset=1): 
    print(row[0].value)
Run Code Online (Sandbox Code Playgroud)