반응형
읽기 전용 모드에서 OpenPyXL이 있는 Excel 워크시트의 열 이름 가져오기
어떻게 회수할 수 있습니까?
- 열 이름(첫 번째 행에 있는 셀의 값)을 읽기 전용 워크시트에 입력하시겠습니까?
City
,Population
,Country
아래 예제 워크시트에서
- 읽기 전용 워크북에 있는 모든 열 이름?
City
,Population
,Country
, 워크시트 1의 프레임과 다른 모든 워크시트의 다른 열 이름
Excel 워크시트 예제:
| City | Population | Country |
| -----------|------------ | ------------ |
| Madison | 252,551 | USA |
| Bengaluru | 10,178,000 | India |
| ... | ... | ... |
예제 코드:
from openpyxl import load_workbook
wb = load_workbook(filename=large_file.xlsx, read_only=True)
sheet = wb.worksheets[0]
... (not sure where to go from here)
주의:
- 엑셀 파일의 행수가 100만개가 넘었기 때문에 읽기만 사용해야 합니다(묻지마)
- 최종적으로 칼럼 유형을 추론하고 포스트그레로 엑셀 데이터를 가져올 수 있도록 칼럼 이름을 알고 싶습니다.SQL 데이터베이스
이것은 1행의 모든 것을 인쇄합니다.
list_with_values=[]
for cell in ws[1]:
list_with_values.append(cell.value)
어떤 이유로 입력된 열 문자 목록을 가져오려면 다음 작업을 수행할 수 있습니다.
column_list = [cell.column for cell in ws[1]]
두 번째 질문: "list_with_values"라는 이름의 목록에 헤더 값을 저장했다고 가정합니다.
from openpyxl import Workbook
wb = Workbook()
ws = wb['Sheet']
#Sheet is the default sheet name, you can rename it or create additional ones with wb.create_sheet()
ws.append(list_with_values)
wb.save('OutPut.xlsx')
읽기 전용 모드를 사용하면 워크시트의 행 또는 행 집합에 빠르게 액세스할 수 있습니다.메소드 사용iter_rows()
선택을 제한합니다.워크시트의 첫 번째 행을 구하는 방법:
rows = ws.iter_rows(min_row=1, max_row=1) # returns a generator of rows
first_row = next(rows) # get the first row
headings = [c.value for c in first_row] # extract the values from the cells
찰리 클락스는 목록을 이해할 수 있는 하나의 라이너로 압축되어 답변합니다.
headers = [c.value for c in next(wb['sheet_name'].iter_rows(min_row=1, max_row=1))]
이게 제가 처리한 방법입니다.
from openpyxl.utils import get_column_letter
def get_columns_from_worksheet(ws):
return {
cell.value: {
'letter': get_column_letter(cell.column),
'number': cell.column - 1
} for cell in ws[1] if cell.value
}
이것이 사용된 예는 다음과 같습니다.
from openpyxl import load_workbook
wb = load_workbook(filename='my_file.xlsx')
ws = wb['MySheet']
COLUMNS = get_columns_from_worksheet(ws)
for cell in ws[COLUMNS['MY Named Column']['letter']]:
print(cell.value)
글자와 숫자 코드를 모두 포착하는 주된 이유는 openpyxl 안에서 다른 함수와 패턴이 숫자나 글자를 사용하기 때문에 둘 다를 참조하는 것이 매우 중요하기 때문입니다.
언급URL : https://stackoverflow.com/questions/51975912/get-column-names-of-excel-worksheet-with-openpyxl-in-readonly-mode
반응형
'programing' 카테고리의 다른 글
현재 버전의 Android Gradle 플러그인에서는 주문형 구성이 지원되지 않습니다. (0) | 2023.09.17 |
---|---|
스프링 부트에서 json 개체(변수) 이름을 변경하는 방법 (0) | 2023.09.17 |
MariaDB: WITH 문과 함께 "INSERT ... SELECT"를 사용하는 방법 (0) | 2023.09.12 |
ODBC와 ADO.NET의 차이점은 무엇입니까? (0) | 2023.09.12 |
클래스 접두사별 CSS 셀렉터가 있습니까? (0) | 2023.09.12 |