소개
Aspose.Cells FOSS for Go는 Excel 스프레드시트를 다루기 위한 순수 Go 라이브러리입니다. 새 워크북을 처음부터 생성하고, 셀 값을 기록·스타일링하며, 데이터 유효성 검사 규칙을 적용하고, 구조화된 테이블을 만들고, 그림을 삽입하고, 큰 .xlsx 파일을 한 행씩 읽을 수 있는 API를 제공합니다—모두 네이티브 C 또는 C++ 의존성 없이 동작합니다.
이 라이브러리는 github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go에 Go 모듈로 제공되며 MIT 라이선스로 배포됩니다. go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26을 사용하여 Go 1.24+ 프로젝트에 설치하십시오.
이 글에서는 핵심 기능인 셀 스타일링, 데이터 검증, 테이블, 이미지, 스트리밍 읽기를 다룹니다.
주요 기능
셀 스타일링
Font, Fill, Alignment, Border 설정을 재사용 가능한 Style로 묶은 다음, Cell.SetStyle로 셀에 적용합니다:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
boldStyle.Font.Size = 12
cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)
Alignment는 Horizontal, Vertical, WrapText를 제어하고; Border는 Top, Bottom, Left, Right 규칙의 가시성과 Color를 제어합니다.
데이터 유효성 검사
Worksheet.AddDataValidation은 셀 범위에 검증 규칙을 부착합니다. DataValidation 구조체는 규칙 Type, 하나 또는 두 개의 Formula 값, 그리고 오류 메시지 필드를 포함합니다:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
dv := &cells_foss.DataValidation{
Type: cells_foss.DataValidationTypeList,
Formula1: `"Apple,Banana,Cherry,Dragonfruit"`,
AllowBlank: true,
ShowErrorMessage: true,
ErrorTitle: "Invalid Fruit",
ErrorMessage: "Please pick a fruit from the list.",
ErrorStyle: cells_foss.ErrorStyleStop,
}
ws.AddDataValidation("A2:A10", dv)
표
Worksheet.AddTable은 범위 위에 구조화된 Table을 생성하며, 선택적 헤더 행과 명명된 테이블 스타일을 지정할 수 있습니다:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Item")
ws.Cells().Set("B1", "Qty")
tbl := ws.AddTable("A1:B2")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"
그림
Worksheet.AddPicture는 이미지를 삽입하고; Picture.SetAnchor(row, col)은 해당 위치에 배치합니다:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
imageBytes := []byte{} // populate with real image bytes before use
pic := &cells_foss.Picture{Data: imageBytes, Format: "png"}
ws.AddPicture(pic)
pic.SetAnchor(5, 0)
대용량 파일 스트리밍
StreamingReader는 콜백을 통해 워크시트를 행별로 읽어, 수천 행에 달하는 워크북이라도 메모리에 전체를 로드할 필요가 없습니다:
sr := cells_foss.NewStreamingReader("large_workbook.xlsx")
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
// process one row at a time
return nil
})
if err != nil {
fmt.Printf("Error streaming: %v\n", err)
}
빠른 시작
모듈 설치:
go get github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26최소 작업 흐름 — 워크북을 만들고, 두 셀을 쓰고, 헤더를 굵게 만들고, 저장합니다:
package main
import (
"fmt"
cells_foss "github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go/v26/aspose/cells_foss"
)
func main() {
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
ws.Cells().Set("A1", "Product")
ws.Cells().Set("B1", "Revenue")
boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
for _, ref := range []string{"A1", "B1"} {
cell, _ := ws.Cells().Get(ref)
cell.SetStyle(boldStyle)
}
if err := wb.Save("report.xlsx"); err != nil {
fmt.Printf("Error saving workbook: %v\n", err)
return
}
fmt.Println("Workbook saved to report.xlsx")
}
지원되는 형식
| 형식 | 확장자 | 읽기 | 쓰기 |
|---|---|---|---|
| XLSX | .xlsx | — | ✓ |
| CSV | .csv | ✓ | ✓ |
XLSX 워크북은 NewWorkbook으로 메모리에서 생성되고 Workbook.Save로 저장됩니다. CSV는 Workbook.ImportFromCSV와 Workbook.ExportToCSV를 통해 양방향으로 처리됩니다.
오픈 소스 및 라이선스
Aspose.Cells FOSS for Go는 MIT 라이선스로 배포됩니다. 사용 제한이 없으며, 런타임 비용도 없고, 등록 요구사항도 없습니다. 소스 코드는 github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go에서 확인할 수 있습니다.
MIT 라이선스 조건에 따라 상업적 사용이 허용됩니다. 프로젝트에 엔터프라이즈 수준 지원, 확장된 포맷 지원, 클라우드 통합이 필요하다면 Aspose.Cells — Enterprise Product Family가 별도의 상업 제품으로 제공됩니다.