파이썬을 사용하여 Excel 문서 구문 분석
파이썬의 목록에 엑셀 문서를 구문 분석하고 싶습니다.이 작업에 도움이 되는 파이썬 라이브러리가 있습니까?그리고 그 도서관에서는 어떤 기능들이 관련이 있습니까?
xlrd 라이브러리는 Excel 파일을 구문 분석하는 데 가장 적합합니다.python-excel.org 사이트에는 xlrd 및 관련 파이썬 엑셀 라이브러리에 대한 링크와 예제가 있으며, xlrd를 사용하는 몇 가지 좋은 예가 있는 pdf 문서가 포함되어 있습니다.물론 StackOverflow에 대한 관련 xlrd 질문도 많이 있습니다.
xlrd 라이브러리의 한 가지 주의 사항은 이 라이브러리가 다음과만 작동한다는 것입니다. xls
(Excel 2003 및 이전 버전의 Excel) 파일 형식 및 최신 파일 형식이 아님) xlsx
파일 형식입니다.새로운 라이브러리가 있습니다.처리를 위한 openpyxl xlsx
사용해 본 적이 없습니다.
업데이트: John의 의견에 따르면 xlrd 라이브러리는 이제 두 가지를 모두 지원합니다.xls
그리고.xlsx
파일 형식
도움이 되길 바랍니다.
판다 도서관은 엑셀을 빠르고 쉽게 읽을 수 있는 방법을 가지고 있습니다.대부분이 데이터이고 너무 복잡한 것이 아니라면 다음과 같이 작동할 것입니다.
import pandas as pd
ex_data = pd.read_excel('excel_file.xlsx')
그것은 그것을 판다 데이터 프레임으로 읽으며, 이것은 데이터 멍킹 등에 유용합니다.
목록으로 이동하기
ex_data['column1_name'].values.tolist()
각 워크시트에 여러 테이블 및 항목이 있는 경우 xlrd 또는 openpyxl과 같은 다른 라이브러리를 사용할 수 있습니다.
openpyxl은 훌륭한 라이브러리이며 2010 xlsx 파일에 대한 읽기/쓰기를 지원합니다.
샘플 구문 분석 코드
from openpyxl import load_workbook
wb = load_workbook('Book1.xlsx')
ws = wb.active
for row in ws.iter_rows():
for cell in row:
print cell.value
샘플 작성 코드
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
wb = Workbook()
dest_filename = 'empty_book.xlsx'
ws1 = wb.active
ws1.title = "range names"
for row in range(1, 40):
ws1.append(range(600))
wb.save(filename = dest_filename)
여기서 더 읽을 수 있습니다: https://openpyxl.readthedocs.io/en/stable/index.html
xlrd는 간단한 작업에 적합하지만 Excel의 더 깊은 기능(매크로, 고급 플로팅 등)으로 작업해야 하고 윈도우 머신에서 작업 중이라면 pywin32 라이브러리를 사용하여 win32com 레이어를 제어할 수 있습니다.이렇게 하면 매크로/Visual Basic을 통해 제어할 수 있는 거의 모든 항목에 액세스할 수 있습니다.
을 구문 하고 싶다면,xlsx
python-xlsx 시도
pyExcelerator는 더 이상 유지되지 않는 것 같지만, 저는 꽤 오랫동안 그것을 사용해 왔고 그것을 정말 좋아하게 되었습니다.
핵심 사항:
- 플랫폼 독립
- Excel을 설치할 필요가 없음(COM 통신을 사용하지 않음)
갱신하다
저의 모든 새로운 프로젝트가 xlrd로 이동했습니다.
언급URL : https://stackoverflow.com/questions/7372716/parsing-excel-documents-with-python
'programing' 카테고리의 다른 글
각 카테고리별 상위 10개 레코드 선택 (0) | 2023.05.20 |
---|---|
FutureWarning: 요소별 비교 실패. 스칼라를 반환하지만 나중에 요소별 비교가 수행됩니다. (0) | 2023.05.20 |
VB.NET 코드를 C#로 마이그레이션할 때 for 루프가 다르게 작동하는 이유는 무엇입니까? (0) | 2023.05.20 |
C#에서 복싱과 언복싱이 필요한 이유는 무엇입니까? (0) | 2023.05.20 |
종료 코드 1( 호출을 보려면 -v 사용), Xcode 8, Swift 3에서 링커 명령이 실패했습니다. (0) | 2023.05.15 |