Openpyxl - Python에서 Excel 파일에서 하나의 열만 읽는 방법은 무엇입니까?
스프레드시트에서 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)
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...
이게 도움이 됐으면 좋겠어요.
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)
내 생각에는 훨씬 더 간단하다.
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)
나는 판다 도서관을 이용하는 것을 추천한다.
import pandas as pd
dataFrame = pd.read_excel("/home/ilissa/Documents/AnacondaFiles/AZ_Palmetto_MUSC_searchterms.xlsx", sheetname = "PrivAlert Terms", parse_cols = 0)
팬더가 불편하거나 어떤 이유로든 Openpyxl과 작업해야 하는 경우 코드 상의 오류는 첫 번째 열만 선택하지 않는 것입니다.각 행의 각 셀을 명시적으로 호출합니다.첫 번째 열만 사용하려면 각 행의 첫 번째 열만 가져옵니다.
for row in sheet_ranges.iter_rows(row_offset=1):
print(row[0].value)
사용하다ws.get_squared_range()
반환되는 셀의 범위(예: 단일 열)를 정확하게 제어합니다.
다음은 간단한 기능입니다.
import openpyxl
def return_column_from_excel(file_name, sheet_name, column_num, first_data_row=1):
wb = openpyxl.load_workbook(filename=file_name)
ws = wb.get_sheet_by_name(sheet_name)
min_col, min_row, max_col, max_row = (column_num, first_data_row, column_num, ws.max_row)
return ws.get_squared_range(min_col, min_row, max_col, max_row)
openpyxl 라이브러리와 Python의 목록 통합 개념을 사용하여 다음을 수행합니다.
import openpyxl
book = openpyxl.load_workbook('testfile.xlsx')
user_data = book.get_sheet_by_name(str(sheet_name))
print([str(user_data[x][0].value) for x in range(1,user_data.max_row)])
이것은 꽤 놀라운 접근법이며 시도해 볼 가치가 있다.
ZLNK의 뛰어난 응답성을 이용하여 목록 이해를 사용하여 한 줄에 동일한 결과를 얻을 수 있는 이 함수를 만들었습니다.
def read_column(ws, begin, columns):
return [ws["{}{}".format(column, row)].value for row in range(begin, len(ws.rows) + 1) for column in columns]
그런 다음 워크시트, 시작할 행 및 반환할 열의 첫 번째 문자를 전달하여 호출할 수 있습니다.
column_a_values = read_column(worksheet, 2, 'A')
열 A와 열 B를 반환하려면 콜이 다음과 같이 변경됩니다.
column_ab_values = read_column(worksheet, 2, 'AB')
이 질문에 답하기 위해 가입하는 것이 늦어질 수도 있다는 것을 알고 있습니다.하지만 적어도 내 대답은 다른 누군가가 해결할 수 있게 해줄지도 몰라.
시트의 열 값을 반복해야 합니다.제 의견으로는 다음과 같이 구현할 수 있습니다.
from openpyxl import load_workbook
wb = load_workbook("/home/ilissa/Documents/AnacondaFiles/AZ_Palmetto_MUSC_searchterms.xlsx", read_only=True)
sheet = wb['PrivAlert Terms']
for val in sheet.iter_rows(max_col=1):
print(val[0].value)
iter_rows
는 지정된 컬럼의 행을 루프합니다.다음 인수를 지정할 수 있습니다.iter_rows
최소 열에서 최대 열까지max_row
그리고 또max_col
설정max_col=1
여기서 컬럼의 모든 행을 루프합니다(컬럼은 지정된 최대값까지).스프레드시트의 첫 번째 열 값만 모두 가져옵니다.
마찬가지로 행의 모든 열(수평 방향)을 반복하려면iter_cols
시작 행 및 종료 열 속성 지정
ZLNK 응답에서 업데이트된 답변:
import openpyxl
wb=openpyxl.load_workbook('file_name.xlsm')
first_sheet = wb.sheetnames
worksheet = wb[first_sheet[2]] # index '2' is user input
for row in range(2,worksheet.max_row+1):
for column in "E": #Here you can add or reduce the columns
cell_name = "{}{}".format(column, row)
vv=worksheet[cell_name].value
언급URL : https://stackoverflow.com/questions/34754077/openpyxl-how-to-read-only-one-column-from-excel-file-in-python
'programing' 카테고리의 다른 글
C# Windows Console App의 현재 행을 업데이트하려면 어떻게 해야 합니까? (0) | 2023.04.13 |
---|---|
단말기의 현재 회선을 클리어/삭제하려면 어떻게 해야 하나요? (0) | 2023.04.13 |
Bash 스크립트 파라미터 (0) | 2023.04.13 |
Swift Xcode 6의 버튼 텍스트를 변경하는 방법 (0) | 2023.04.13 |
powershell - 파일 이름과 확장자를 추출합니다. (0) | 2023.04.13 |