Go에서 스프레드시트를 로드하는 방법
Aspose.Cells FOSS for Go는 기존 .xlsx 워크북을 메모리로 Workbook에 로드하여 표준 라이브러리 API를 통해 워크시트와 셀에 완전하게 접근할 수 있게 합니다. 시작하기 전에 go get로 모듈을 설치하세요.
단계별 가이드
Step 1: 패키지 설치
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26설치 후 go.mod에서 모듈 버전을 확인하세요.
Step 2: 필요한 클래스 가져오기
import (
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)3단계: 로드할 워크북 만들기 및 채우기
이 예제는 먼저 워크북을 만들어 실제 .xlsx 파일을 로드하도록 합니다 — 여러분의 코드에서는 기존 스프레드시트의 경로로 교체하십시오:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Product")
ws.Cells().Set("B1", "Price")
ws.Cells().Set("A2", "Widget A")
ws.Cells().Set("B2", 12.99)
wb.Save("outputfiles/products.xlsx")4단계: 로드된 워크시트에서 셀 값 읽기
Worksheets[0]를 통해 첫 번째 워크시트에 접근하고 Cells().Get(ref)으로 개별 셀을 읽습니다:
wb := cells_foss.NewWorkbook()
wb.Worksheets[0].Cells().Set("B2", 12.99)
ws2 := wb.Worksheets[0]
cell, err := ws2.Cells().Get("B2")
if err != nil {
fmt.Printf("Error reading cell: %v\n", err)
return
}
fmt.Printf("Price: %v\n", cell.Value)5단계: 모든 채워진 셀 열거하기
알려진 참조를 하나씩 읽는 대신 설정된 모든 셀을 반복해야 할 때는 Cells().All()를 사용하십시오:
wb := cells_foss.NewWorkbook()
ws2 := wb.Worksheets[0]
ws2.Cells().Set("A1", "Product")
allCells := ws2.Cells().All()
for ref, c := range allCells {
fmt.Printf("%s = %v\n", ref, c.Value)
}일반적인 문제 및 해결 방법
Get 셀 참조에 대해 오류를 반환합니다. 컬렉션에 아직 참조가 설정되지 않았습니다. 셀에 다음과 같이 기록되었는지 확인하십시오. Set, 또는 반환된 error 셀을 사용하기 전에 명시적으로 확인하십시오.
값이 잘못된 유형처럼 보입니다. Cell.Value 전달된 유형이 무엇이든 반영합니다. Set (string, int, float64 등) — 기본 Go 유형에 따라 분기해야 할 경우 타입 스위치를 사용해 검사하십시오.
로드된 워크북에 예상 시트에 데이터가 없습니다. 올바른 항목을 인덱싱하고 있는지 확인하십시오 Worksheets — 워크북에는 여러 개의 워크시트가 있을 수 있으며, 대상 데이터가 그 위에 없을 수도 있습니다 Worksheets[0].
자주 묻는 질문
워크북을 로드하려면 원본 파일이 디스크에 여전히 존재해야 합니까?
예 — Workbook은(는) 제공한 파일 경로에서 읽습니다. 로드가 진행되는 동안 원본 파일에 접근할 수 있도록 유지하십시오.
로드한 후 셀을 수정하고 변경 사항을 다시 저장할 수 있나요?
예 — Cells().Set은(는) 새로 만든 워크북과 동일한 방식으로 로드된 워크북에서도 작동합니다; 변경 사항을 기록하려면 Save을 다시 호출하십시오.
전체 파일을 메모리로 로드하는 것을 피할 방법이 있을까요?
예 — 전체 워크북을 로드하는 대신 행을 순차적으로만 읽어야 하는 큰 파일의 경우 StreamingReader.ProcessRows를 사용하십시오.