기능 개요
기능 개요
Aspose.Cells FOSS for Go의 API은 Workbook, Worksheet, Cells, 및 Cell을 중심으로 합니다. 이 가이드는 라이브러리의 다른 기능인 스타일링, 데이터 검증, 테이블, 그림, 그리고 대용량 파일을 위한 스트리밍 읽기를 살펴봅니다.
셀 스타일링
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
highlightStyle := cells_foss.NewStyle()
highlightStyle.Font.Color = "FFFFFFFF"
highlightStyle.Font.Bold = true
highlightStyle.Fill = &cells_foss.Fill{
Type: cells_foss.FillTypeSolid,
Color: "FF4472C4",
}
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)정수 범위 검증은 DataValidationTypeWhole을 사용하며, Formula1/Formula2를 하한 및 상한으로 지정합니다.
표
Worksheet.AddTable은(는) 범위에 대해 구조화된 Table을 생성하며, 선택적 헤더 행과 명명된 테이블 스타일을 포함합니다:
wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
tbl := ws.AddTable("A1:F6")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"Worksheet.GetTable(name)을(를) 사용하여 이름으로 기존 테이블을 검색합니다.
그림
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은(는) 콜백을 통해 워크시트를 행 단위로 읽어들여, 수천 행에 달하는 워크북을 메모리에 완전히 로드할 필요가 없습니다:
path := "outputfiles/large_workbook.xlsx"
sr := cells_foss.NewStreamingReader(path)
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)
}팁 및 모범 사례
- 파일에 수천 개의 행이 있을 수 있고 읽기만 필요하고 수정은 필요하지 않을 때 전체
Workbook로드 대신StreamingReader를 사용하십시오. - 한 번
Style를 만든 뒤 각 셀마다 새로 만드는 대신 여러 셀에서 재사용하십시오. Cell.SetFormula는 수식 문자열을 그대로 저장합니다 — 저장 시 라이브러리가 아니라 열 때 Excel 또는 LibreOffice에 의해 평가됩니다.Save,AddDataValidation, 및 CSV 가져오기/내보내기 호출의error반환 값을 확인하십시오 — 잘못된 경로나 형식이 잘못된 입력으로 인해 스프레드시트 I/O가 실패할 수 있습니다.
일반적인 문제
| Issue | Cause | 수정 |
|---|---|---|
셀 값이 Set 뒤에 표시되지 않음 | 잘못된 시트를 참조하거나 범위를 벗어난 셀 참조 | Worksheet 인덱스를 확인하고 A1 스타일 참조가 의도한 셀과 일치하는지 확인하십시오 |
| 수식이 계산되지 않고 원시 텍스트로 표시됨 | 라이브러리는 수식 문자열만 저장하며, 수식을 평가하지 않습니다 | Excel 또는 LibreOffice에서 파일을 열면, 열 때 계산이 수행됩니다 |
| Excel에서 데이터 유효성 검사가 보이지 않음 | 대상 셀을 포함하지 않는 범위에 유효성 검사가 추가되었습니다. | 범위 문자열(예: "A2:A10")이 검증하려는 셀을 포함하는지 확인하십시오. |
FAQ
라이브러리가 수식을 직접 평가합니까?
No. Cell.SetFormula/GetFormula은 Excel 또는 LibreOffice가 파일을 열 때 평가하는 수식 문자열을 저장합니다.
대용량 워크북을 스트림-읽기뿐 아니라 스트림-쓰기 할 수 있나요?
StreamingReader은 스트리밍 읽기를 지원합니다. 현재 대용량 워크북을 쓰는 것은 표준 인메모리 Workbook/Worksheet API를 통해 이루어집니다.
AddTable가 자동으로 자동 필터를 적용합니까?
이는 현재 API 표면에서 확인되지 않았으며 — HasHeaderRow와 StyleName만이 문서화된 Table 필드입니다. 사용 사례에 중요하다면 생성된 .xlsx 파일을 기준으로 확인하십시오.
API Reference 요약
| 클래스 / 메서드 | 설명 |
|---|---|
Workbook.NewWorkbook / Save | 워크북을 생성하고 저장합니다. |
Worksheet.Cells | 워크시트의 셀 컬렉션에 접근합니다. |
Cells.Get / Set / Remove / All | 셀을 읽고, 쓰고, 제거하고, 열거합니다 |
Cell.SetStyle / SetFormula / GetFormula | 셀에 스타일과 수식을 적용합니다 |
Style, Font, Fill, Alignment, Border | 재사용 가능한 셀 서식을 작성합니다 |
Worksheet.AddDataValidation | 셀 범위에 검증 규칙을 연결합니다 |
Worksheet.AddTable / GetTable | 구조화된 테이블 범위를 생성하고 검색하기 |
Worksheet.AddPicture / Picture.SetAnchor(row, col) | 이미지를 삽입하고 배치하기 |
StreamingReader.ProcessRows | 워크시트를 행 단위로 스트리밍하기 |
Workbook.ExportToCSV / ImportFromCSV | XLSX와 CSV 간 변환 |
Workbook.SetPassword / VerifyPassword | 워크북 비밀번호 보호 및 확인 |