워크시트

열 가시성 설정

func (f *File) SetColVisible(sheet, col string, visible bool) error

지정된 워크시트 이름과 열 이름에 기반하여 주어진 열의 가시성을 설정합니다. 이 함수는 동시성을 보장합니다. 예를 들어, 'Sheet1'에 있는 'D' 열을 숨기려면:

err := f.SetColVisible("Sheet1", "D", false)

'Sheet1'에 있는 'D'부터 'F' 열을 숨기려면:

err := f.SetColVisible("Sheet1", "D:F", false)

열 너비 설정

func (f *File) SetColWidth(sheet, startCol, endCol string, width float64) error

지정된 워크시트 이름, 열 범위 및 너비 값을 기반으로 하나 이상의 열의 너비를 설정합니다. 이 함수는 동시성을 보장합니다. 예를 들어, 'Sheet1'에 있는 'A'부터 'H' 열의 너비를 20으로 설정하려면:

err := f.SetColWidth("Sheet1", "A", "H", 20)

행 높이 설정

func (f *File) SetRowHeight(sheet string, row int, height float64) error

지정된 워크시트 이름, 행 번호 및 높이 값을 기반으로 단일 행의 높이를 설정합니다. 예를 들어, 'Sheet1'의 첫 번째 행의 높이를 50으로 설정하려면:

err := f.SetRowHeight("Sheet1", 1, 50)

행 가시성 설정

func (f *File) SetRowVisible(sheet string, row int, visible bool) error

지정된 워크시트 이름과 행 번호에 기반하여 주어진 행의 가시성을 설정합니다. 예를 들어, 'Sheet1'의 두 번째 행을 숨기려면:

err := f.SetRowVisible("Sheet1", 2, false)

워크시트 이름 가져오기

func (f *File) GetSheetName(index int) string

지정된 워크시트 인덱스에 기반하여 워크시트 이름을 가져옵니다. 워크시트가 존재하지 않는 경우 빈 문자열이 반환됩니다.

열 가시성 가져오기

func (f *File) GetColVisible(sheet, column string) (bool, error)

지정된 워크시트 이름과 열 이름에 기반하여 워크시트의 특정 열 가시성을 가져옵니다. true 값을 반환하면 가시성, false 값을 반환하면 비가시성을 나타냅니다. 이 함수는 동시성을 보장합니다. 예를 들어, 'Sheet1'에 있는 'D' 열의 가시성을 가져오려면:

visible, err := f.GetColVisible("Sheet1", "D")

열 너비 가져오기

func (f *File) GetColWidth(sheet, col string) (float64, error)

지정된 워크시트 이름과 열 이름에 기반하여 워크시트의 특정 열의 너비를 가져옵니다. 이 함수는 동시성을 보장합니다.

행 높이 가져오기

func (f *File) GetRowHeight(sheet string, row int) (float64, error)

지정된 워크시트 이름과 행 번호에 기반하여 워크시트의 특정 행의 높이를 가져옵니다. 예를 들어, 'Sheet1'의 첫 번째 행의 높이를 가져오려면:

height, err := f.GetRowHeight("Sheet1", 1)

행 가시성 가져오기

func (f *File) GetRowVisible(sheet string, row int) (bool, error)

지정된 워크시트 이름과 행 번호에 기반하여 워크시트의 특정 행의 가시성을 가져옵니다. 예를 들어, 'Sheet1'의 두 번째 행의 가시성을 가져오려면:

visible, err := f.GetRowVisible("Sheet1", 2)

워크시트의 인덱스 가져오기

func (f *File) GetSheetIndex(sheet string) (int, error)

주어진 워크시트의 이름에 따른 인덱스를 가져옵니다. 워크시트가 존재하지 않는 경우 -1이 반환됩니다. 가져온 인덱스는 워크북의 기본 워크시트를 설정하는 SetActiveSheet() 함수를 호출할 때 매개변수로 사용될 수 있습니다.

시트 매핑 가져오기

func (f *File) GetSheetMap() map[int]string

워크북에서 모든 워크시트, 차트 시트 및 대화 상자 시트의 매핑을 가져옵니다. ID와 이름으로 표시됩니다.

f, err := excelize.OpenFile("Book1.xlsx")
if err != nil {
    return
}
defer func() {
    if err := f.Close(); err != nil {
        fmt.Println(err)
    }
}()
for index, name := range f.GetSheetMap() {
    fmt.Println(index, name)
}

워크시트 목록 가져오기

func (f *File) GetSheetList() []string

워크북에 표시된 순서로 워크시트, 차트 시트 및 대화 상자 시트의 목록을 가져옵니다.

워크시트 이름 설정

func (f *File) SetSheetName(source, target string) error

주어진 이전 워크시트 이름과 새 워크시트 이름을 기반으로 워크시트의 이름을 바꿉니다. 워크시트 이름은 최대 31자까지 사용할 수 있습니다. 이 함수는 워크시트의 이름만을 변경하며 셀 또는 워크시트 이름과 관련된 수식을 업데이트하지 않습니다. 따라서 이 함수를 사용하여 워크시트의 이름을 바꾸면 수식 오류나 참조 문제가 발생할 수 있습니다.

열 삽입

func (f *File) InsertCols(sheet, col string, n int) error

주어진 워크시트 이름, 열 이름 및 삽입할 열의 수를 기반으로 지정된 열 앞에 빈 열을 삽입합니다. 예를 들어, 'Sheet1'이라는 워크시트의 'C' 열 앞에 빈 열을 2개 삽입합니다.

err := f.InsertCols("Sheet1", "C", 2)

행 삽입

func (f *File) InsertRows(sheet string, row, n int) error

주어진 워크시트 이름, 행 번호 및 삽입할 행의 수를 기반으로 지정된 행 앞에 빈 행을 삽입합니다. 예를 들어, 'Sheet1'이라는 워크시트의 3번째 행 앞에 빈 행을 2개 삽입합니다.

err := f.InsertRows("Sheet1", 3, 2)

행 추가 및 복사

func (f *File) DuplicateRow(sheet string, row int) error

주어진 워크시트 이름을 기반으로 지정된 행 번호 뒤에 중복된 행을 추가합니다. 예를 들어, 'Sheet1'이라는 워크시트의 2번째 행을 3번째 행에 복제합니다.

err := f.DuplicateRow("Sheet1", 2)

이 방법을 사용할 때는 주의가 필요합니다. 이것은 워크시트에서 원래 수식, 차트 및 다른 자원 참조에 영향을 미치므로 워크시트에 참조 값이 있으면 이 방법을 사용한 후에 엑셀 애플리케이션으로 여는 것이 파일 오류를 일으킬 수 있습니다. 현재 excelize는 워크시트의 일부 참조 업데이트만 지원합니다.

행 복제

func (f *File) DuplicateRowTo(sheet string, row, row2 int) error

지정된 행 뒤에 행을 복제합니다. 주어진 시트 이름과 행 번호를 기반으로 합니다. 예를 들어, 'Sheet1'이라는 워크시트의 두 번째 행을 일곱 번째 행 뒤에 복제합니다.

err := f.DuplicateRowTo("Sheet1", 2, 7)

이 방법을 사용할 때는 주의가 필요합니다. 이것은 원래 수식, 차트 및 워크시트에서 참조하는 다른 자원에 모두 영향을 미치므로 이 방법을 사용한 후에 엑셀 애플리케이션으로 여는 것이 파일 오류를 일으킬 수 있습니다. 현재 excelize는 워크시트의 일부 참조 업데이트만 지원합니다.

행 아웃라인 레벨 설정

func (f *File) SetRowOutlineLevel(sheet string, row int, level uint8) error

주어진 시트 이름, 행 번호 및 아웃라인 레벨 매개변수를 기반으로 그룹을 생성합니다. 예를 들어, 'Sheet1'이라는 워크시트의 두 번째 행에 1레벨 그룹을 생성합니다.

행 아웃라인 레벨 설정

err := f.SetRowOutlineLevel("Sheet1", 2, 1)

열 개요 수준 설정

func (f *File) SetColOutlineLevel(sheet, col string, level uint8) error

지정된 시트 이름, 열 이름 및 개요 수준 매개변수를 기반으로 그룹을 생성합니다. 예를 들어, 워크시트 Sheet1D 열에 레벨 2 그룹을 만듭니다.

열 개요 수준 설정

err := f.SetColOutlineLevel("Sheet1", "D", 2)

행 개요 수준 가져오기

func (f *File) GetRowOutlineLevel(sheet string, row int) (uint8, error)

지정된 시트 이름과 행 번호를 기반으로 개요 수준을 가져옵니다. 예를 들어, 워크시트 Sheet1의 두 번째 행의 개요 수준을 가져옵니다.

level, err := f.GetRowOutlineLevel("Sheet1", 2)

열 개요 수준 가져오기

func (f *File) GetColOutlineLevel(sheet, col string) (uint8, error)

지정된 시트 이름과 열 이름을 기반으로 개요 수준을 가져옵니다. 예를 들어, 워크시트 Sheet1D 열의 개요 수준을 가져옵니다.

level, err := f.GetColOutlineLevel("Sheet1", "D")

열 반복자

func (f *File) Cols(sheet string) (*Cols, error)

지정된 시트 이름을 기반으로 지정된 워크시트의 열 반복자를 가져옵니다. 이 함수는 동시성을 보장합니다. 열 반복자를 사용하여 스트리밍 읽기 및 셀 탐색에 사용합니다:

cols, err := f.Cols("Sheet1")
if err != nil {
    fmt.Println(err)
    return
}
for cols.Next() {
    col, err := cols.Rows()
    if err != nil {
        fmt.Println(err)
    }
    for _, rowCell := range col {
        fmt.Print(rowCell, "\t")
    }
    fmt.Println()
}

열 반복자 - 단일 열의 값 가져오기

func (cols *Cols) Rows(opts ...Options) ([]string, error)

현재 열의 모든 행의 값들을 반환합니다.

열 반복자 - 탐색 동작

func (cols *Cols) Next() bool

다음 열에 값이 있는 경우 true를 반환합니다.

열 반복자 - 오류 처리

func (cols *Cols) Error() error

다음 열을 찾는 과정에서 오류가 발생한 경우 오류를 반환합니다.

행 반복자

func (f *File) Rows(sheet string) (*Rows, error)

지정된 시트 이름의 행 반복자를 가져옵니다. 이 함수는 동시성을 보장합니다. 행 반복자를 사용하여 스트리밍 읽기를 위해 셀을 반복합니다:

rows, err := f.Rows("Sheet1")
if err != nil {
    fmt.Println(err)
    return
}
for rows.Next() {
    row, err := rows.Columns()
    if err != nil {
        fmt.Println(err)
    }
    for _, colCell := range row {
        fmt.Print(colCell, "\t")
    }
    fmt.Println()
}
if err = rows.Close(); err != nil {
    fmt.Println(err)
}

행 반복자 - 단일 행 동작

func (rows *Rows) Columns(opts ...Options) ([]string, error)

이 함수는 워크시트를 행별로 스트리밍하여 현재 행의 각 셀 값을 반환하며, 워크시트 끝에 있는 유효한 빈 행을 건너뛰지 않습니다.

행 반복자 - 탐색 동작

func (rows *Rows) Next() bool

다음 행에 값이 있는 경우 true를 반환합니다.

행 반복자 - 오류 처리

func (rows *Rows) Error() error

다음 행을 찾는 과정에서 오류가 발생한 경우 error를 반환합니다.

행 반복자 - 행 속성 읽기

func (rows *Rows) GetRowOpts() RowOpts

현재 행의 높이, 가시성 및 스타일 ID와 같은 행 속성을 반환합니다.

행 반복자 - 데이터 스트림 닫기

func (rows *Rows) Close() error

데이터 스트림을 닫고 워크시트를 열 때 생성된 시스템 디스크 캐시를 정리합니다.

워크시트에서 검색

func (f *File) SearchSheet(sheet, value string, reg ...bool) ([]string, error)

주어진 워크시트 이름, 셀 값 또는 정규 표현식을 기반으로 좌표를 가져옵니다. 본 기능은 문자열 및 숫자의 완전한 일치만 지원하며, 계산 결과, 서식이 적용된 숫자, 조건부 검색은 지원하지 않습니다. 검색 결과가 병합된 셀인 경우, 병합 영역의 좌측 상단의 좌표가 반환됩니다.

예를 들어, Sheet1이라는 워크시트에서 값 100의 좌표를 검색하려면 다음과 같이 합니다:

result, err := f.SearchSheet("Sheet1", "100")

예를 들어, Sheet1이라는 워크시트에서 범위 내의 숫자 값 0-9의 좌표를 검색하려면 다음과 같이 합니다:

result, err := f.SearchSheet("Sheet1", "[0-9]", true)

워크시트 보호

func (f *File) ProtectSheet(sheet string, opts *SheetProtectionOptions) error

다른 사용자가 워크시트의 데이터를 실수로나 고의로 변경, 이동 또는 삭제하지 못하게 합니다. 선택 사항인 AlgorithmName 필드를 사용하여 해시 알고리즘 XOR, MD4, MD5, SHA-1, SHA-256, SHA-384 또는 SHA-512를 지정할 수 있습니다. 해시 알고리즘이 지정되지 않은 경우, 기본적으로 XOR 알고리즘이 사용됩니다. 예를 들어, Sheet1이라는 워크시트에 대한 암호 보호를 설정하고 잠긴 셀 선택, 잠금 해제된 셀 선택 및 편집 시나리오를 허용하는 경우:

Protect Sheet

err := f.ProtectSheet("Sheet1", &excelize.SheetProtectionOptions{
    AlgorithmName:       "SHA-512",
    Password:            "password",
    SelectLockedCells:   true,
    SelectUnlockedCells: true,
    EditScenarios:       true,
})

SheetProtectionOptions은 워크시트를 보호하기 위한 설정 옵션을 정의합니다.

type SheetProtectionOptions struct {
    AlgorithmName       string
    AutoFilter          bool
    DeleteColumns       bool
    DeleteRows          bool
    EditObjects         bool
    EditScenarios       bool
    FormatCells         bool
    FormatColumns       bool
    FormatRows          bool
    InsertColumns       bool
    InsertHyperlinks    bool
    InsertRows          bool
    Password            string
    PivotTables         bool
    SelectLockedCells   bool
    SelectUnlockedCells bool
    Sort                bool
}

워크시트 보호 해제

func (f *File) UnprotectSheet(sheet string, password ...string) error

주어진 워크시트 이름에 따라 워크시트 보호를 해제하고, 두 번째 선택적인 암호 매개변수를 지정하여 암호 유효성 검사로 인해 워크시트 보호를 해제합니다.

열 제거

func (f *File) RemoveCol(sheet, col string) error

주어진 워크시트 이름 및 열 이름에 따라 지정된 열을 삭제합니다. 예를 들어, Sheet1이라는 워크시트에서 C 열을 삭제하려면 다음과 같이 합니다:

err := f.RemoveCol("Sheet1", "C")

본 메서드를 사용할 때 주의하십시오. 원래 공식, 차트 및 워크시트의 기타 리소스 참조에 모두 영향을 미치며, 워크시트에 참조된 값이 있는 경우, 이 메서드를 사용하면 사용 후 Excel 애플리케이션에서 파일 오류가 발생할 수 있습니다. Excelize는 현재 워크시트에서 참조된 값의 일부 업데이트만 지원합니다.

행 제거

func (f *File) RemoveRow(sheet string, row int) error

주어진 워크시트 이름 및 행 번호에 따라 지정된 행을 삭제합니다. 예를 들어, Sheet1이라는 워크시트에서 3번째 행을 삭제하려면 다음과 같이 합니다:

err := f.RemoveRow("Sheet1", 3)

본 메서드를 사용할 때 주의하십시오. 원래 공식, 차트 및 워크시트의 기타 리소스 참조에 모두 영향을 미치며, 워크시트에 참조된 값이 있는 경우, 이 메서드를 사용하면 사용 후 Excel 애플리케이션에서 파일 오류가 발생할 수 있습니다. Excelize는 현재 워크시트에서 참조된 값의 일부 업데이트만 지원합니다.

열별 값 할당

func (f *File) SetSheetCol(sheet, cell string, slice interface{}) error

주어진 워크시트 이름, 시작 좌표 및 slice 유형의 참조에 따라 열별로 값을 할당합니다. 예를 들어, Sheet1이라는 워크시트의 B열에 대해서 셀 B6를 시작 좌표로하여 값을 할당하려면:

err := f.SetSheetCol("Sheet1", "B6", &[]interface{}{"1", nil, 2})

행별 할당

func (f *File) SetSheetRow(sheet, cell string, slice interface{}) error

지정된 워크시트 이름, 시작 좌표 및 slice 유형에 대한 참조를 기반으로 행별로 값들을 할당합니다. 이 함수는 동시성에 안전합니다. 예를 들어, Sheet1이라는 워크시트의 6번째 행에서 B6 셀부터 행별로 값들을 할당할 수 있습니다.

err := f.SetSheetRow("Sheet1", "B6", &[]interface{}{"1", nil, 2})

페이지 나누기 삽입

func (f *File) InsertPageBreak(sheet, cell string) error

지정된 워크시트 이름과 셀 좌표를 기준으로 페이지 나누기를 삽입합니다. 페이지 나누기는 워크시트를 인쇄 목적으로 개별 페이지로 분리하는 분할 선입니다.

페이지 나누기 제거

func (f *File) RemovePageBreak(sheet, cell string) error

지정된 워크시트 이름과 셀 좌표를 기반으로 페이지 나누기를 제거합니다.

워크시트 차원 설정

func (f *File) SetSheetDimension(sheet string, rangeRef string) error

지정된 워크시트 이름과 셀 좌표 또는 셀 좌표 범위를 기반으로 워크시트의 사용 영역을 설정하거나 제거합니다. 사용된 셀에는 수식, 텍스트 콘텐츠 및 셀 형식이 포함됩니다. 예를 들어, A1:D5와 같습니다. 주어진 셀 좌표 범위가 빈 문자열인 경우, 워크시트의 사용 영역을 제거합니다.

워크시트 차원 가져오기

func (f *File) GetSheetDimension(sheet string) (string, error)

지정된 워크시트 이름을 기반으로 해당 워크시트의 사용 영역을 가져옵니다.