소개

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)

AlignmentHorizontal, Vertical, WrapText를 제어하고; BorderTop, 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.ImportFromCSVWorkbook.ExportToCSV를 통해 양방향으로 처리됩니다.


오픈 소스 및 라이선스

Aspose.Cells FOSS for Go는 MIT 라이선스로 배포됩니다. 사용 제한이 없으며, 런타임 비용도 없고, 등록 요구사항도 없습니다. 소스 코드는 github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Go에서 확인할 수 있습니다.

MIT 라이선스 조건에 따라 상업적 사용이 허용됩니다. 프로젝트에 엔터프라이즈 수준 지원, 확장된 포맷 지원, 클라우드 통합이 필요하다면 Aspose.Cells — Enterprise Product Family가 별도의 상업 제품으로 제공됩니다.


시작하기

관련 리소스