Как перебрать конкретный столбец в Excel, используя pyxl (python) - PullRequest
0 голосов
/ 08 мая 2018

Я новичок в python и нуждаюсь в вашей помощи. Я пытаюсь написать код, который перебирает определенный столбец в Excel, используя pyxl

from io import StringIO
import pandas as pd
import pyodbc 
from openpyxl import load_workbook


d=pd.read_excel('workbook.xlsx',header=None)
wb = load_workbook('workbook.xlsx')

ТАК В приведенном выше примере мне нужно перейти к столбцу Jи отобразите все значения в столбце.

Пожалуйста, помогите мне решить эту проблему.

Кроме того, у меня повторяется одно и то же имя столбца в моем листе Excel. Например, имя столбца «Образец»доступно в B2, а также в J2 .. Но я хочу получить всю информацию о столбцах J2.

Пожалуйста, дайте мне знать, как решить эту проблему ...

Спасибо. Пожалуйста, ответьте

1 Ответ

0 голосов
/ 09 мая 2018

Поскольку вы новичок в Python, вы должны научиться читать документацию . Доступно множество модулей, и вам будет проще, а остальным - легче, если вы сначала приложите усилия.

import openpyxl
from openpyxl.utils import cell as cellutils

## My example book simply has "=Address(Row(),Column())" in A1:J20

## Because my example uses formulae, I am loading my workbook with
## "data_only = True" in order to get the values; if your cells do not
## contain formulae, you can omit data_only
workbook = openpyxl.load_workbook("workbook.xlsx", data_only = True)
worksheet = workbook.active
## Alterntively: worksheet = workbook["sheetname"]


## A container for gathering the cell values
output = []

## Current Row = 2 assumes that Cell 1 (in this case, J1) contains your column header
## Adjust as necessary
column = cellutils.column_index_from_string("J")
currentrow = 2

## Get the first cell
cell = worksheet.cell(column = column, row = currentrow)

## The purpose of "While cell.value" is that I'm assuming the column
## is complete when the cell does not contain a value

## If you know the exact range you need, you can either use a for-loop,
## or look at openpyxl.utils.cell.rows_from_range
while cell.value:
    ## Add Cell value to our list of values for this column
    output.append(cell.value)

    ##  Move to the next row
    currentrow += 1

    ## Get that cell
    cell = worksheet.cell(column = column, row = currentrow)


print(output)
""" output: ['$J$2', '$J$3', '$J$4', '$J$5', '$J$6', '$J$7',
            '$J$8', '$J$9', '$J$10', '$J$11', '$J$12', '$J$13', '$J$14',
            '$J$15', '$J$16', '$J$17', '$J$18', '$J$19', '$J$20']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...