Python에서 스프레드시트를 CSV로 저장하는 방법
문제
Python에서 Aspose.Cells FOSS를 사용하여 Excel 워크북(.xlsx)을 CSV 파일로 저장합니다. Workbook()를 사용하여 워크북을 로드한 다음, save_as_csv()를 호출하여 활성 워크시트를 콤마 구분 값 파일에 씁니다. 선택적으로 구분자, 인코딩 및 인용 동작을 제어하기 위해 CSVSaveOptions 객체를 전달할 수 있습니다.
전제 조건
Python에서 Aspose.Cells FOSS를 사용하여 스프레드시트를 CSV로 저장하려면, 환경이 다음 요구 사항을 충족하는지 확인하십시오.
- Python 3.7 이상이 설치됨
pip install aspose-cells-foss>=26.3.1를 통해 Aspose.Cells FOSS를 설치합니다from aspose.cells_foss import Workbook를 사용하여 라이브러리를 가져옵니다- Python 파일 처리에 대한 기본적인 이해
저장 단계
1단계: 라이브러리 설치
PyPI에서 Aspose.Cells FOSS를 설치하십시오. FOSS 사용을 위해 라이선스 파일이 필요하지 않습니다.
pip install aspose-cells-foss2단계: 워크북 로드
기존 .xlsx 파일의 경로를 사용하여 Workbook을 인스턴스화합니다. 생성자는 보호된 워크북을 위한 선택적 password 매개변수를 허용합니다.
from aspose.cells_foss import Workbook
workbook = Workbook("input.xlsx")새 워크북을 사용하려면 파일 경로를 생략하십시오:
from aspose.cells_foss import Workbook
workbook = Workbook()
worksheet = workbook.worksheets[0]
# Populate some cells
worksheet.cells["A1"].value = "Product"
worksheet.cells["B1"].value = "Price"
worksheet.cells["A2"].value = "Widget"
worksheet.cells["B2"].value = 9.99
worksheet.cells["A3"].value = "Gadget"
worksheet.cells["B3"].value = 24.95Step 3: 활성 시트를 CSV로 저장
원하는 출력 경로와 함께 Workbook.save_as_csv()을 호출하십시오. 이 메서드는 기본적으로 첫 번째(활성) 워크시트를 씁니다.
workbook.save_as_csv("output.csv")또는 일반적인 Workbook.save() 방법을 사용하십시오 — Aspose.Cells FOSS는 .csv 확장자를 통해 CSV 형식을 추론합니다:
workbook.save("output.csv")두 호출은 맞춤 옵션이 필요하지 않을 경우 동일한 출력을 생성합니다.
4단계: CSV 옵션으로 저장
Workbook.save_as_csv()은 두 번째 인수로 선택적인 CSVSaveOptions 인스턴스를 허용합니다. aspose.cells_foss.csv_handler에서 CSVSaveOptions를 인스턴스화하고 이를 직접 전달하여 비기본 구분자나 인코딩 선택과 같은 내보내기 동작을 제어합니다.
from aspose.cells_foss import Workbook
from aspose.cells_foss.csv_handler import CSVSaveOptions
workbook = Workbook("input.xlsx")
# Create options instance — configure attributes per your environment's needs
options = CSVSaveOptions()
workbook.save_as_csv("output_custom.csv", options)CSVSaveOptions이 전달되지 않으면, save_as_csv()은 라이브러리의 기본값(쉼표 구분자, UTF-8 인코딩)을 사용합니다. 기본값을 프로그래밍 방식으로 재정의해야 할 때마다 옵션 객체를 전달하십시오.
5단계: 특정 워크시트 내보내기
워크북에 여러 시트가 포함된 경우 활성 시트가 내보내집니다. 저장하기 전에 Workbook.set_active_worksheet()를 사용하여 내보낼 시트를 선택하십시오.
from aspose.cells_foss import Workbook
workbook = Workbook("multi_sheet.xlsx")
# Export the second worksheet (index 1)
workbook.set_active_worksheet(1)
workbook.save_as_csv("sheet2_output.csv")각 시트를 개별 CSV 파일로 내보내려면 workbook.worksheets을 반복하십시오:
from aspose.cells_foss import Workbook
workbook = Workbook("multi_sheet.xlsx")
for index in range(len(workbook.worksheets)):
ws = workbook.get_worksheet_by_index(index)
workbook.set_active_worksheet(index)
workbook.save_as_csv(f"sheet_{ws.name}.csv")전체 예제
다음의 독립 실행형 예제는 워크북을 생성하고 샘플 데이터로 채운 다음 표준 CSV와 세미콜론 구분 CSV 두 가지 형식으로 저장합니다.
from aspose.cells_foss import Workbook
from aspose.cells_foss.csv_handler import CSVSaveOptions
# Create workbook and populate data
workbook = Workbook()
worksheet = workbook.worksheets[0]
headers = ["Name", "Department", "Salary"]
rows = [
["Alice", "Engineering", 95000],
["Bob", "Marketing", 72000],
["Carol", "Finance", 81000],
]
for col, header in enumerate(headers):
col_letter = chr(ord("A") + col)
worksheet.cells[f"{col_letter}1"].value = header
for row_idx, row in enumerate(rows, start=2):
for col_idx, val in enumerate(row):
col_letter = chr(ord("A") + col_idx)
worksheet.cells[f"{col_letter}{row_idx}"].value = val
# Save as standard CSV (default options)
workbook.save_as_csv("employees.csv")
# Save with explicit CSVSaveOptions instance
options = CSVSaveOptions()
workbook.save_as_csv("employees_custom.csv", options)
print("CSV files written successfully.")일반적인 문제
빈 출력 파일
출력 CSV가 비어 있거나 빈 줄만 포함하는 경우, save_as_csv()을 호출하기 전에 셀 값이 할당되었는지 확인하십시오. 이 메서드는 활성 워크시트를 내보냅니다 — workbook.get_active_worksheet()를 사용하여 올바른 시트가 활성화되어 있는지 확인하십시오.
인코딩 문제 (깨진 문자)
CSV를 Excel에서 열었을 때 문자 깨짐이 보이면, 내보낼 때 사용된 인코딩을 확인하십시오. Aspose.Cells FOSS는 기본적으로 UTF-8을 사용합니다; Windows의 Excel은 인코딩을 올바르게 인식하기 위해 바이트 순서 표시(BOM)를 기대할 수 있습니다. CSVSaveOptions을 통해 인코딩을 구성하고 save_as_csv()에 전달하십시오.
다중 시트 워크북에서 한 시트만 내보내기
CSV는 단일 테이블 형식이며, 파일당 하나의 워크시트만 저장할 수 있습니다. Step 5에 표시된 대로 set_active_worksheet(index)를 사용하여 각 시트를 개별적으로 내보내세요.
구분자를 포함하는 셀
셀 값에 구분 문자(예: 콤마 구분 출력에서의 쉼표)가 포함된 경우, Aspose.Cells FOSS는 내보내기 시 자동으로 값을 따옴표로 감쌉니다. 필요에 따라 따옴표 처리 동작을 사용자 지정하려면 CSVSaveOptions를 사용하십시오.
자주 묻는 질문
Q: workbook.save("output.csv")이 save_as_csv()과 동일한 결과를 생성합니까?
예. Workbook.save()는 파일 확장자를 검사하고 확장자가 .csv일 때 save_as_csv()에 위임합니다. 기본 제공 기본값을 넘어 내보내기를 사용자 지정해야 할 경우 save_as_csv()를 직접 호출하고 CSVSaveOptions 인스턴스를 전달하십시오.
Q: 파일 대신 CSV 문자열로 내보낼 수 있나요?
예. CSVHandler.save_csv_to_string(workbook, options)를 aspose.cells_foss.csv_handler에서 사용하십시오. 이렇게 하면 CSV 내용이 Python 문자열로 반환되며, 파일 시스템에 손대지 않고 스트림에 쓰거나 업로드하거나 추가로 처리할 수 있습니다.
from aspose.cells_foss import Workbook
from aspose.cells_foss.csv_handler import CSVHandler, CSVSaveOptions
workbook = Workbook("input.xlsx")
csv_string = CSVHandler().save_csv_to_string(workbook, CSVSaveOptions())
print(csv_string)Q: 저장 후 CSV를 워크북에 다시 로드하려면 어떻게 해야 하나요?
기존 Workbook 인스턴스에 Workbook.load_csv("file.csv")을 사용하거나, aspose.cells_foss.csv_handler에서 편리 함수 load_csv_workbook("file.csv")을 호출하여 한 번에 바로 사용할 수 있는 워크북을 얻으세요.
Q: 지원되는 Python 버전은 무엇인가요?
Aspose.Cells FOSS는 Python 3.7 이상이 필요합니다. CSV 내보내기를 위해 추가적인 네이티브 확장이 필요하지 않으며, 라이브러리는 순수 Python으로 작성되었습니다.
Q: 워크시트의 일부(셀 범위)만 CSV로 저장할 수 있나요?
Aspose.Cells FOSS는 활성 워크시트의 전체 사용 범위를 내보냅니다. 특정 범위로 출력을 제한하려면 원하는 셀을 임시 워크북에 복사한 다음 해당 워크북을 내보내세요.
참조
- Aspose.Cells FOSS로 파일 저장하는 방법 — XLSX 및 Markdown을 포함한 일반 저장 개요
- Python에서 CSV를 JSON으로 변환하는 방법 — CSV를 로드하고 JSON 형식으로 내보내기
- Python에서 Excel을 Markdown으로 내보내는 방법 —
save_as_markdown()을 사용한 Markdown 테이블 내보내기 - Python용 Aspose.Cells FOSS: 개발자 가이드 — 포괄적인 기능 문서
- API 레퍼런스 —
Workbook,CSVHandler,CSVSaveOptions