통합 문서

Options 은 스프레드 시트를 읽고 쓰는 옵션을 정의합니다.

type Options struct {
    MaxCalcIterations uint
    Password          string
    RawCellValue      bool
    UnzipSizeLimit    int64
    UnzipXMLSizeLimit int64
    ShortDatePattern  string
    LongDatePattern   string
    LongTimePattern   string
    CultureInfo       CultureName
}

MaxCalcIterations 는 반복 계산을 위한 최대 반복을 지정하며 기본값은 0 입니다.

Password 는 스프레드시트의 비밀번호를 일반 텍스트로 지정합니다.

RawCellValue 는 셀 값에 숫자 형식을 적용할지 아니면 원시 값을 가져올지 지정합니다.

UnzipSizeLimit 은 스프레드시트를 열 때 압축 해제 크기 제한을 바이트 단위로 지정합니다. 이 값은 UnzipXMLSizeLimit 이상이어야 하며 기본 크기 제한은 16GB 입니다.

UnzipXMLSizeLimit 은 압축 해제 워크시트 및 공유 문자열 테이블의 메모리 제한을 바이트 단위로 지정합니다. 파일 크기가 이 값을 초과하면 워크시트 XML이 시스템 임시 디렉토리로 추출됩니다. 이 값은 기본값인 UnzipSizeLimit 보다 작거나 같아야 합니다. 값은 16MB 입니다.

ShortDatePattern 은 간단한 날짜 숫자 형식 코드를 지정합니다. 스프레드시트 애플리케이션에서 날짜 형식은 날짜 및 시간 일련 번호를 날짜 값으로 표시합니다. 별표 (*) 로 시작하는 날짜 형식은 운영 체제에 지정된 지역 날짜 및 시간 설정의 변경 사항에 응답합니다. 별표가 없는 형식은 운영 체제 설정의 영향을 받지 않습니다. 별표로 시작하는 적용 날짜 형식을 지정하는 데 사용되는 ShortDatePattern 입니다.

LongDatePattern 은 긴 날짜 숫자 형식 코드를 지정합니다.

LongTimePattern 은 긴 시간 숫자 형식 코드를 지정합니다.

CultureInfo 는 시스템의 현지 언어 설정에 따른 영향을 받는 내장 언어 번호 형식 코드를 적용하기 위한 국가 코드를 지정합니다.

Excel 문서 만들기

func NewFile(opts ...Options) *File

NewFile 을 사용 하 여 새 Excel 통합 문서를 만들고 새로 만든 통합 문서에는 기본적으로 Sheet1 이라는 워크시트가 포함 됩니다.

열기

func OpenFile(filename string, opts ...Options) (*File, error)

OpenFile 을 사용 하 여 기존 Excel 문서를 엽니다. 예를 들어, 암호로 보호 된 스프레드 시트를 엽니 다:

f, err := excelize.OpenFile("Book1.xlsx", excelize.Options{Password: "password"})
if err != nil {
    return
}

스프레드시트를 연 후 Close() 로 파일을 닫습니다.

열린 데이터 스트림

func OpenReader(r io.Reader, opts ...Options) (*File, error)

OpenReader 는 io.Reader 에서 데이터 스트림을 읽고 채워진 스프레드 시트 파일을 반환합니다.

예를 들어, 업로드 템플리트를 처리 할 HTTP 서버를 작성한 후 새 워크 시트가 추가 된 응답 다운로드 파일:

package main

import (
    "fmt"
    "net/http"

    "github.com/xuri/excelize/v2"
)

func process(w http.ResponseWriter, req *http.Request) {
    file, _, err := req.FormFile("file")
    if err != nil {
        fmt.Fprint(w, err.Error())
        return
    }
    defer file.Close()
    f, err := excelize.OpenReader(file)
    if err != nil {
        fmt.Fprint(w, err.Error())
        return
    }
    f.Path = "Book1.xlsx"
    f.NewSheet("NewSheet")
    w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=%s", f.Path))
    w.Header().Set("Content-Type", req.Header.Get("Content-Type"))
    if err := f.Write(w); err != nil {
        fmt.Fprint(w, err.Error())
    }
}

func main() {
    http.HandleFunc("/process", process)
    http.ListenAndServe(":8090", nil)
}

cURL 로 테스트:

curl --location --request GET 'http://127.0.0.1:8090/process' \
--form 'file=@/tmp/template.xltx' -O -J

저장

func (f *File) Save(opts ...Options) error

Save 을 사용 하 여 Excel 문서에 대 한 편집 내용을 저장 합니다.

다른 이름으로 저장

func (f *File) SaveAs(name string, opts ...Options) error

Excel 문서를 지정 된 파일로 저장 하려면 SaveAs 를 사용 하십시오.

통합 문서 닫기

func (f *File) Close() error

Close 는 스프레드시트에 대해 열려 있는 임시 파일을 닫고 정리합니다.

워크 시트 만들기

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

NewSheet 는 워크 시트 이름을 지정하여 새 시트를 만드는 기능을 제공하고 추가 된 후 통합 문서 (스프레드 시트)의 시트 인덱스를 반환합니다. 새 스프레드 시트 파일을 만들 때 Sheet1 이라는 기본 워크 시트가 생성됩니다.

워크 시트 삭제

func (f *File) DeleteSheet(sheet string) error

DeleteSheet 는 지정된 워크 시트 이름으로 통합 문서의 워크 시트를 삭제하는 기능을 제공하며 시트 이름은 대/소문자를 구분하지 않습니다. 이 방법은 수식, 차트 등과 같은 참조의 변경에 영향을 주는 주의해서 사용하십시오. 삭제된 워크시트의 참조된 값이 있으면 워크시트를 열 때 파일 오류가 발생합니다. 이 함수는 워크시트가 하나만 남아 있으면 유효하지 않습니다.

워크 시트 복사

func (f *File) CopySheet(from, to int) error

대상 워크시트 인덱스에는 지정 된 복사 된 워크시트와 워크시트를 복사 하는 대상 워크시트 인덱스에 따라 개발자가 이미 존재 하는지 확인 해야 합니다. 셀 값과 수식이 포함 된 워크시트 간의 복제는 현재 지원 되며 테이블, 그림, 차트 및 피벗 테이블과 같은 요소를 포함 하는 워크시트 간의 복제를 지원 하지 않습니다.

// Sheet1 이름이 있는 워크시트가 이미 있습니다 ...
index, err := f.NewSheet("Sheet2")
if err != nil {
    fmt.Println(err)
    return
}
err := f.CopySheet(1, index)

그룹 워크시트

func (f *File) GroupSheets(sheets []string) error

GroupSheets 는 주어진 워크시트 이름으로 워크시트를 그룹화하는 기능을 제공합니다. 그룹 워크시트에는 활성 워크시트가 있어야 합니다.

워크시트 그룹 해제

func (f *File) UngroupSheets() error

UngroupSheets 는 워크시트를 그룹 해제하는 기능을 제공합니다.

워크 시트 배경

func (f *File) SetSheetBackground(sheet, picture string) error

SetSheetBackground 는 주어진 워크시트 이름과 파일 경로로 배경 그림을 설정하는 기능을 제공합니다. 지원되는 이미지 유형: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF 및 WMZ.

func (f *File) SetSheetBackgroundFromBytes(sheet, extension string, picture []byte) error

SetSheetBackgroundFromBytes 는 주어진 워크시트 이름, 확장자 이름 및 이미지 데이터로 배경 그림을 설정하는 기능을 제공합니다. 지원되는 이미지 유형: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF 및 WMZ.

기본 워크 시트 설정

func (f *File) SetActiveSheet(index int)

SetActiveSheet 는 지정된 인덱스로 통합 문서의 기본 활성 시트를 설정하는 기능을 제공합니다. 활성 인덱스는 GetSheetMap 함수가 리턴 한 ID와 다릅니다. 총 워크 시트 수보다 0 보다 크거나 같아야합니다.

활성 시트 색인 가져 오기

func (f *File) GetActiveSheetIndex() int

기본 워크시트의 인덱스를 가져오고 기본 워크시트를 찾을 수 없는 경우 0 을 반환 합니다.

워크 시트 가시성 설정

func (f *File) SetSheetVisible(sheet string, visible bool, veryHidden ...bool) error

SetSheetVisible 은 지정된 워크 시트 이름으로 표시되는 워크 시트를 설정하는 함수를 제공합니다. 통합 문서에는 최소한 하나의 보이는 워크 시트가 있어야합니다. 지정된 워크 시트가 활성화 된 경우이 설정은 무효화됩니다. 세 번째 선택적 veryHidden 매개변수는 visiblefalse 인 경우에만 작동합니다.

예를 들어,Sheet1 을 숨 깁니다.

err := f.SetSheetVisible("Sheet1", false)

워크 시트 가시성 확보

func (f *File) GetSheetVisible(sheet string) (bool, error)

GetSheetVisible 은 주어진 워크 시트 이름으로 볼 수있는 워크 시트를 가져 오는 기능을 제공합니다. 예를 들어, Sheet1 의 표시 상태 가져 오기:

visible, err := f.GetSheetVisible("Sheet1")

워크 시트 속성 설정

func (f *File) SetSheetProps(sheet string, opts *SheetPropsOptions) error

SetSheetProps 는 워크시트 속성을 설정하는 함수를 제공합니다. 설정할 수 있는 속성은 다음과 같습니다:

옵션 유형 설명설명
CodeName *string 시간이 지남에 따라 변경되지 않아야 하며 사용자 입력에서 변경되지 않는 시트의 안정적인 이름을 지정합니다. 이 이름은 코드에서 특정 시트를 참조하는 데 사용해야 합니다.
EnableFormatConditionsCalculation *bool 조건부 서식 계산을 평가할지 여부를 나타냅니다. false로 설정된 경우 상위 N 규칙의 색상 배율 또는 데이터 막대 또는 임계값의 최소/최대 값은 업데이트되지 않습니다. 기본적으로 조건부 형식 "calc" 는 꺼져 있습니다.
Published *bool 워크시트가 게시되었는지 여부를 나타내는 기본값은 true 입니다.
AutoPageBreaks *bool 시트에 자동 페이지 나누기가 표시되는지 여부를 나타내는 기본값은 true 입니다.
FitToPage *bool "페이지에 맞춤" 인쇄 옵션이 활성화되어 있는지 여부를 나타내는 기본값은 false 입니다.
TabColorIndexed *int 인덱싱된 색상 값을 나타냅니다.
TabColorRGB *string 표준 ARGB (알파 빨강 녹색 파랑) 색상 값을 나타냅니다.
TabColorTheme *int 컬렉션에 제로 기반 인덱스를 나타내며 테마 파트에 표현된 특정 값을 참조합니다.
TabColorTint *float64 색상에 적용되는 색조 값을 지정하며, 기본값은 0.0 입니다.
OutlineSummaryBelow *bool 요약 행이 윤곽선의 세부 정보 아래에 나타나는지 여부를 나타내는 경우 윤곽선을 적용할 때 기본값은 true 입니다.
OutlineSummaryRight *bool 요약 열이 윤곽선의 세부 정보 오른쪽에 표시되는지 여부를 나타냅니다. 윤곽선을 적용할 때 기본값은 true 입니다.
BaseColWidth *uint8 일반 스타일 글꼴의 최대 자릿수 너비의 문자 수를 지정합니다. 이 값에는 격자선에 대한 여백 패딩이나 추가 패딩이 포함되지 않습니다. 문자 수일 뿐이며 기본값은 8 입니다.
DefaultColWidth *float64 일반 스타일 글꼴의 최대 자릿수 너비의 문자 수로 측정된 기본 열 너비를 지정합니다.
DefaultRowHeight *float64 포인트 크기로 측정된 기본 행 높이를 지정합니다. 최적화를 통해 모든 행에 높이를 쓸 필요가 없습니다. 최적화를 달성하기 위해 대부분의 행에 사용자 정의 높이가있는 경우 작성할 수 있습니다.
CustomHeight *bool 사용자 지정 높이를 지정하고, 기본값은 false 입니다.
ZeroHeight *bool 행이 숨겨져 있는 경우 기본값은 false 를 지정합니다.
ThickTop *bool 행에 기본적으로 두꺼운 위쪽 테두리가 있는 경우 기본값은 false 를 지정합니다.
ThickBottom *bool 행에 기본적으로 두꺼운 아래쪽 테두리가 있는지 지정하며 기본값은 false 입니다.

예를 들어, 워크 시트 행을 기본적으로 숨김으로 설정하십시오:

워크 시트 속성 설정

f, enable := excelize.NewFile(), true
if err := f.SetSheetProps("Sheet1", &excelize.SheetPropsOptions{
    ZeroHeight: &enable,
}); err != nil {
    fmt.Println(err)
}
if err := f.SetRowVisible("Sheet1", 10, true); err != nil {
    fmt.Println(err)
}
f.SaveAs("Book1.xlsx")

워크 시트 속성 가져 오기

func (f *File) GetSheetProps(sheet string) (SheetPropsOptions, error)

GetSheetProps 는 워크시트 속성을 가져오는 함수를 제공합니다.

워크 시트보기 속성 설정

func (f *File) SetSheetView(sheet string, viewIndex int, opts *ViewOptions) error

SetSheetView 는 시트 뷰 속성을 설정합니다. viewIndex 는 음수 일 수 있으며 그렇다면 뒤로 계산됩니다 (-1 은 마지막 뷰입니다). 설정할 수 있는 속성은 다음과 같습니다:

옵션 유형 설명설명
DefaultGridColor *bool 사용 중인 응용 프로그램이 기본 격자선 색상(시스템에 따라 다름)을 사용해야 함을 나타냅니다. colorId 에 지정된 모든 색상을 재정의하고 기본값은 true 입니다.
RightToLeft *bool 시트가 "오른쪽에서 왼쪽으로" 표시 모드에 있는지 여부를 나타냅니다. 이 모드에서 A 열은 맨 오른쪽, B 열에 있습니다. 는 A 열의 왼쪽 열 중 하나입니다. 또한 셀의 정보는 오른쪽에서 왼쪽 형식으로 표시되며 기본값은 false 입니다.
ShowFormulas *bool 이 시트에 수식이 표시되어야 하는지 여부를 나타내는 기본값은 false 입니다.
ShowGridLines *bool 이 시트에 격자선을 표시할지 여부를 나타내는 기본값은 true 입니다.
ShowRowColHeaders *bool 시트에 행 및 열 머리글이 표시되어야 하는지 여부를 나타내는 기본값은 true 입니다.
ShowRuler *bool 이 시트에 눈금자가 표시되어야 함을 나타내면 기본값은 true 입니다.
ShowZeros *bool "값이 0인 셀에 0 을 표시" 할지 여부를 나타냅니다. 수식을 사용하여 비어 있는 다른 셀을 참조할 때 플래그가 true 일 때 참조된 값은 0 이 되고 기본값은 true 가 됩니다.
TopLeftCell *string 왼쪽 위에 보이는 셀의 위치를 지정합니다. 오른쪽 아래 창에서 왼쪽 위에 표시되는 셀의 위치 (왼쪽에서 오른쪽 모드인 경우).
View *string 시트가 표시되는 방식을 나타내며 기본적으로 빈 문자열, 사용 가능한 옵션을 사용합니다: normal, pageBreakPreviewpageLayout.
ZoomScale *float64 백분율 값을 나타내는 현재 뷰의 창 확대/축소 배율을 지정합니다. 이 속성은 10 에서 400 사이의 값으로 제한됩니다. 수평 및 수직 배율을 함께 사용하면 기본값은 100 입니다.

워크 시트 뷰 속성 가져 오기

func (f *File) GetSheetView(sheet string, viewIndex int) (ViewOptions, error)

GetSheetView 는 시트 뷰 속성의 값을 가져옵니다. viewIndex 는 음수 일 수 있으며 그렇다면 뒤로 계산됩니다 (-1 은 마지막 뷰입니다).

워크 시트 페이지 레이아웃 설정

func (f *File) SetPageLayout(sheet string, opts *PageLayoutOptions) error

지정 된 워크시트 이름 및 페이지 레이아웃 매개 변수를 기반으로 워크시트의 페이지 레이아웃 속성을 설정 합니다. 현재 설정에 대해 지원 되는 페이지 레이아웃 속성:

Size 방법을 사용 하 여 페이지 용지의 크기를 설정 합니다, 기본 페이지 레이아웃 크기는 "Letter paper (8.5 in. by 11 in.)" 입니다. 다음 표는 excel에서 페이지 레이아웃 크기와 인덱스 Size 매개 변수를 비교한 것입니다:

색인 용지 크기
1 Letter paper (8.5 in. × 11 in.)
2 Letter small paper (8.5 in. × 11 in.)
3 Tabloid paper (11 in. × 17 in.)
4 Ledger paper (17 in. × 11 in.)
5 Legal paper (8.5 in. × 14 in.)
6 Statement paper (5.5 in. × 8.5 in.)
7 Executive paper (7.25 in. × 10.5 in.)
8 A3 paper (297 mm × 420 mm)
9 A4 paper (210 mm × 297 mm)
10 A4 small paper (210 mm × 297 mm)
11 A5 paper (148 mm × 210 mm)
12 B4 paper (250 mm × 353 mm)
13 B5 paper (176 mm × 250 mm)
14 Folio paper (8.5 in. × 13 in.)
15 Quarto paper (215 mm × 275 mm)
16 Standard paper (10 in. × 14 in.)
17 Standard paper (11 in. × 17 in.)
18 Note paper (8.5 in. × 11 in.)
19 #9 envelope (3.875 in. × 8.875 in.)
20 #10 envelope (4.125 in. × 9.5 in.)
21 #11 envelope (4.5 in. × 10.375 in.)
22 #12 envelope (4.75 in. × 11 in.)
23 #14 envelope (5 in. × 11.5 in.)
24 C paper (17 in. × 22 in.)
25 D paper (22 in. × 34 in.)
26 E paper (34 in. × 44 in.)
27 DL envelope (110 mm × 220 mm)
28 C5 envelope (162 mm × 229 mm)
29 C3 envelope (324 mm × 458 mm)
30 C4 envelope (229 mm × 324 mm)
31 C6 envelope (114 mm × 162 mm)
32 C65 envelope (114 mm × 229 mm)
33 B4 envelope (250 mm × 353 mm)
34 B5 envelope (176 mm × 250 mm)
35 B6 envelope (176 mm × 125 mm)
36 Italy envelope (110 mm × 230 mm)
37 Monarch envelope (3.875 in. × 7.5 in.).
38 6¾ envelope (3.625 in. × 6.5 in.)
39 US standard fanfold (14.875 in. × 11 in.)
40 German standard fanfold (8.5 in. × 12 in.)
41 German legal fanfold (8.5 in. × 13 in.)
42 ISO B4 (250 mm × 353 mm)
43 Japanese postcard (100 mm × 148 mm)
44 Standard paper (9 in. × 11 in.)
45 Standard paper (10 in. × 11 in.)
46 Standard paper (15 in. × 11 in.)
47 Invite envelope (220 mm × 220 mm)
50 Letter extra paper (9.275 in. × 12 in.)
51 Legal extra paper (9.275 in. × 15 in.)
52 Tabloid extra paper (11.69 in. × 18 in.)
53 A4 extra paper (236 mm × 322 mm)
54 Letter transverse paper (8.275 in. × 11 in.)
55 A4 transverse paper (210 mm × 297 mm)
56 Letter extra transverse paper (9.275 in. × 12 in.)
57 SuperA/SuperA/A4 paper (227 mm × 356 mm)
58 SuperB/SuperB/A3 paper (305 mm × 487 mm)
59 Letter plus paper (8.5 in. × 12.69 in.)
60 A4 plus paper (210 mm × 330 mm)
61 A5 transverse paper (148 mm × 210 mm)
62 JIS B5 transverse paper (182 mm × 257 mm)
63 A3 extra paper (322 mm × 445 mm)
64 A5 extra paper (174 mm × 235 mm)
65 ISO B5 extra paper (201 mm × 276 mm)
66 A2 paper (420 mm × 594 mm)
67 A3 transverse paper (297 mm × 420 mm)
68 A3 extra transverse paper (322 mm × 445 mm)
69 Japanese Double Postcard (200 mm × 148 mm)
70 A6 (105 mm × 148 mm)
71 Japanese Envelope Kaku #2
72 Japanese Envelope Kaku #3
73 Japanese Envelope Chou #3
74 Japanese Envelope Chou #4
75 Letter Rotated (11 × 8½ in.)
76 A3 Rotated (420 mm × 297 mm)
77 A4 Rotated (297 mm × 210 mm)
78 A5 Rotated (210 mm × 148 mm)
79 B4 (JIS) Rotated (364 mm × 257 mm)
80 B5 (JIS) Rotated (257 mm × 182 mm)
81 Japanese Postcard Rotated (148 mm × 100 mm)
82 Double Japanese Postcard Rotated (148 mm × 200 mm)
83 A6 Rotated (148 mm × 105 mm)
84 Japanese Envelope Kaku #2 Rotated
85 Japanese Envelope Kaku #3 Rotated
86 Japanese Envelope Chou #3 Rotated
87 Japanese Envelope Chou #4 Rotated
88 B6 (JIS) (128 mm × 182 mm)
89 B6 (JIS) Rotated (182 mm × 128 mm)
90 (12 in × 11 in)
91 Japanese Envelope You #4
92 Japanese Envelope You #4 Rotated
93 PRC 16K (146 mm × 215 mm)
94 PRC 32K (97 mm × 151 mm)
95 PRC 32K(Big) (97 mm × 151 mm)
96 PRC Envelope #1 (102 mm × 165 mm)
97 PRC Envelope #2 (102 mm × 176 mm)
98 PRC Envelope #3 (125 mm × 176 mm)
99 PRC Envelope #4 (110 mm × 208 mm)
100 PRC Envelope #5 (110 mm × 220 mm)
101 PRC Envelope #6 (120 mm × 230 mm)
102 PRC Envelope #7 (160 mm × 230 mm)
103 PRC Envelope #8 (120 mm × 309 mm)
104 PRC Envelope #9 (229 mm × 324 mm)
105 PRC Envelope #10 (324 mm × 458 mm)
106 PRC 16K Rotated
107 PRC 32K Rotated
108 PRC 32K(Big) Rotated
109 PRC Envelope #1 Rotated (165 mm × 102 mm)
110 PRC Envelope #2 Rotated (176 mm × 102 mm)
111 PRC Envelope #3 Rotated (176 mm × 125 mm)
112 PRC Envelope #4 Rotated (208 mm × 110 mm)
113 PRC Envelope #5 Rotated (220 mm × 110 mm)
114 PRC Envelope #6 Rotated (230 mm × 120 mm)
115 PRC Envelope #7 Rotated (230 mm × 160 mm)
116 PRC Envelope #8 Rotated (309 mm × 120 mm)
117 PRC Envelope #9 Rotated (324 mm × 229 mm)
118 PRC Envelope #10 Rotated (458 mm × 324 mm)

Orientation 은 워크시트 방향을 지정했으며 기본 방향은 portrait 입니다. 이 필드에 사용할 수 있는 값은 portraitlandscape 입니다.

FirstPageNumber 는 첫 번째 인쇄된 페이지 번호를 지정했습니다. 값을 지정하지 않으면 "자동" 으로 간주됩니다.

AdjustTo 는 인쇄 배율을 지정했습니다. 이 속성은 10(10%) 에서 400(400%) 사이의 값으로 제한됩니다. 이 설정은 FitToWidth 및/또는 FitToHeight 를 사용 중일 때 재정의됩니다.

FitToHeight 는 맞출 세로 페이지 수를 지정했습니다.

FitToWidth 는 맞출 가로 페이지의 수를 지정했습니다.

BlackAndWhite 는 흑백으로 인쇄를 지정했습니다.

예를 들어 Sheet1 이라는 시트 페이지 레이아웃을 단색 인쇄로 설정하고, 시작 페이지 번호를 2 로 설정하고, 가로로, A4(작은) 210× 297mm 용지 사용, 2 세로 페이지에 맞게 조정하고 2 개의 가로 페이지를 맞출 수 있습니다:

f := excelize.NewFile()
var (
    size                 = 10
    orientation          = "landscape"
    firstPageNumber uint = 2
    adjustTo        uint = 100
    fitToHeight          = 2
    fitToWidth           = 2
    blackAndWhite        = true
)
if err := f.SetPageLayout("Sheet1", &excelize.PageLayoutOptions{
    Size:            &size,
    Orientation:     &orientation,
    FirstPageNumber: &firstPageNumber,
    AdjustTo:        &adjustTo,
    FitToHeight:     &fitToHeight,
    FitToWidth:      &fitToWidth,
    BlackAndWhite:   &blackAndWhite,
}); err != nil {
    fmt.Println(err)
}

워크 시트 페이지 레이아웃 가져 오기

func (f *File) GetPageLayout(sheet string) (PageLayoutOptions, error)

GetPageLayout 은 워크시트 페이지 레이아웃을 가져오는 함수를 제공합니다.

워크 시트 페이지 여백 설정

func (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error

SetPageMargins 는 워크 시트 페이지 여백을 설정하는 기능을 제공합니다. 사용 가능한 옵션:

옵션 유형 설명설명
Bottom *float64 아래쪽
Footer *float64 바닥글
Header *float64 머리글
Left *float64 왼쪽
Right *float64 오른쪽
Top *float64 위쪽
Horizontally *bool 페이지 중심: 가로로
Vertically *bool 페이지 중앙: 세로

워크 시트 페이지 여백 가져 오기

func (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error)

GetPageMargins 는 워크 시트 페이지 여백을 얻는 기능을 제공합니다.

통합 문서 속성 설정

func (f *File) SetWorkbookProps(opts *WorkbookPropsOptions) error

SetWorkbookProps 는 통합 문서 속성을 설정하는 기능을 제공합니다. 사용 가능한 옵션:

옵션 유형 설명설명
Date1904 *bool 통합 문서의 직렬 날짜-시간을 날짜로 변환할 때 1900 또는 1904 날짜 시스템을 사용할지 여부를 나타냅니다.
FilterPrivacy *bool 응용 프로그램이 통합 문서에 PII(개인 식별 정보)를 검사했는지 여부를 나타내는 부울 값을 지정합니다. 이 플래그가 설정된 경우 응용 프로그램은 사용자가 문서에 PII를 삽입하는 작업을 수행할 때마다 사용자에게 경고합니다.
CodeName *string 이 통합 문서를 만든 응용 프로그램의 코드 이름을 지정합니다. 이 특성을 사용하여 응용 프로그램의 증분 릴리스에서 파일 콘텐츠를 추적할 수 있습니다.

통합 문서 속성 가져오기

func (f *File) GetWorkbookProps() (WorkbookPropsOptions, error)

GetWorkbookProps 는 통합 문서 속성을 가져오는 기능을 제공합니다.

머리글 및 바닥 글 설정

func (f *File) SetHeaderFooter(sheet string, opts *HeaderFooterOptions) error

SetHeaderFooter 는 주어진 워크 시트 이름과 제어 문자로 머리글과 바닥 글을 설정하는 기능을 제공합니다.

머리글과 바닥 글은 다음 설정 필드를 사용하여 지정됩니다.

필드 설명
AlignWithMargins 머리글 바닥글 여백을 페이지 여백에 맞추기
DifferentFirst 다른 첫 페이지 머리글 및 바닥글 표시기
DifferentOddEven 다른 홀수 및 짝수 페이지 머리글 및 바닥글 표시기
ScaleWithDoc 문서 크기 조정으로 머리글 및 바닥글 크기 조정
OddFooter 홀수 페이지 바닥글 또는 DifferentOddEvenfalse 인 경우 기본 페이지 바닥글
OddHeader 홀수 헤더 또는 DifferentOddEvenfalse 인 경우 기본 페이지 헤더
EvenFooter 짝수 페이지 바닥글
EvenHeader 짝수 페이지 머리글
FirstFooter 첫 페이지 바닥글
FirstHeader 첫 페이지 머리글

다음 형식 코드는 6 개의 문자열 형식 필드에서 사용할 수 있습니다: OddHeader, OddFooter, EvenHeader, EvenFooter, FirstFooter, FirstHeader

서식 코드 설명
&& 캐릭터 "&"
&font-size 텍스트 글꼴의 크기입니다. 여기서 font-size 는 소수점 글꼴 크기 (포인트 단위) 입니다
&"font name,font type" 텍스트 글꼴 이름 문자열, 글꼴 이름 및 텍스트 글꼴 유형 문자열, 글꼴 유형
&"-,Regular" 일반 텍스트 형식입니다. 굵게 및 기울임꼴 모드를 끕니다
&A 현재 워크시트의 탭 이름
&B or &"-,Bold" 굵은 텍스트 형식, 끄기에서 켜기 또는 그 반대로. 기본 모드는 꺼져 있습니다
&D 현재 날짜
&C 중앙 섹션
&E 이중 밑줄 텍스트 형식
&F 현재 통합 문서의 파일 이름
&G 배경으로 개체 그리기(現在サポートされていません)
&H 그림자 텍스트 형식
&I or &"-,Italic" 기울임꼴 텍스트 형식
&K 텍스트 글꼴 색상
RGB 색상은 RRGGBB 로 지정됩니다
테마 색상은 TTSNNN 으로 지정되며, 여기서 TT 는 테마 색상 ID 이고, S 는 색조/음영 값의 "+" 또는 "-" 이며, NNN 은 색조/음영 값입니다
&L 왼쪽 섹션
&N 총 페이지 수
&O 개요 텍스트 형식
&P[[+\|-]n] 선택적 접미사가 없으면 현재 페이지 번호 (10 진수)
&R 오른쪽 섹션
&S 취소선 텍스트 형식
&T 현재 시간
&U 단일 밑줄 텍스트 형식입니다. 이중 밑줄 모드가 켜져 있는 경우 섹션 지정자가 다음에 나타나면 이중 밑줄 모드가 해제됩니다. 그렇지 않으면 단일 밑줄 모드를 끄기에서 켜기 또는 그 반대로 전환합니다. 기본 모드는 꺼져 있습니다
&X 위 첨자 텍스트 형식
&Y 첨자 텍스트 형식
&Z 현재 통합 문서의 파일 경로

예:

err := f.SetHeaderFooter("Sheet1", &excelize.HeaderFooterOptions{
    DifferentFirst:   true,
    DifferentOddEven: true,
    OddHeader:        "&R&P",
    OddFooter:        "&C&F",
    EvenHeader:       "&L&P",
    EvenFooter:       "&L&D&R&T",
    FirstHeader:      `&CCenter &"-,Bold"Bold&"-,Regular"HeaderU+000A&D`,
})

이 예는 다음과 같습니다:

  • 첫 페이지에는 고유 한 머리말과 꼬리말이 있습니다.
  • 홀수 페이지와 짝수 페이지는 서로 다른 머리글과 바닥 글을 가지고 있습니다.
  • 홀수 페이지 헤더의 오른쪽 섹션에있는 현재 페이지 번호 홀수 페이지 바닥 글의 가운데 섹션에있는 현재 통합 문서의 파일 이름
  • 짝수 페이지 헤더의 왼쪽 섹션에있는 현재 페이지 번호
  • 왼쪽 섹션의 현재 날짜와 짝수 페이지 바닥 글의 오른쪽 섹션의 현재 시간
  • 첫 번째 페이지의 가운데 섹션의 첫 번째 줄에있는 텍스트 "Center Bold Header"과 같은 페이지의 가운데 섹션의 두 번째 줄에있는 날짜
  • 첫 페이지에 꼬리말 없음

이름 설정

func (f *File) SetDefinedName(definedName *DefinedName) error

지정된 이름과 범위를 기반으로 이름을 설정합니다. 기본 범위는 통합 문서입니다. 예:

err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "Amount",
    RefersTo: "Sheet1!$A$2:$D$5",
    Comment:  "defined name comment",
    Scope:    "Sheet2",
})

워크 시트의 인쇄 영역 및 인쇄 제목 설정:

워크 시트의 인쇄 영역 및 인쇄 제목 설정

if err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "_xlnm.Print_Area",
    RefersTo: "Sheet1!$A$1:$Z$100",
    Scope:    "Sheet1",
}); err != nil {
    fmt.Println(err)
}
if err := f.SetDefinedName(&excelize.DefinedName{
    Name:     "_xlnm.Print_Titles",
    RefersTo: "Sheet1!$A:$A,Sheet1!$1:$1",
    Scope:    "Sheet1",
}); err != nil {
    fmt.Println(err)
}

이름 가져 오기

func (f *File) GetDefinedName() []DefinedName

범위에있는 통합 문서 및 워크 시트의 이름 목록을 얻습니다.

정의 된 이름 삭제

func (f *File) DeleteDefinedName(definedName *DefinedName) error

DeleteDefinedName 은 통합 문서 또는 워크 시트의 정의 된 이름을 삭제하는 기능을 제공합니다. 범위를 지정하지 않으면 기본 범위는 통합 문서입니다. 예를 들면 다음과 같습니다:

err := f.DeleteDefinedName(&excelize.DefinedName{
    Name:     "Amount",
    Scope:    "Sheet2",
})

애플리케이션 속성 설정

func (f *File) SetAppProps(appProperties *AppProperties) error

SetAppProps 는 문서 애플리케이션 속성을 설정하는 기능을 제공합니다. 설정할 수 있는 속성은 다음과 같습니다.

속성 기술
Application 이 문서를 만든 응용 프로그램의 이름입니다.
ScaleCrop 문서 축소판의 표시 모드를 나타냅니다. 이 요소를 true 로 설정하면 문서 축소판을 디스플레이에 맞게 조정할 수 있습니다. 이 요소를 false 로 설정하면 디스플레이에 맞는 섹션만 표시하도록 문서 축소판을 잘라낼 수 있습니다.
DocSecurity 숫자 값으로 나타낸 문서의 보안 수준입니다. 문서 보안은 다음과 같이 정의됩니다.
1 - 문서가 비밀번호로 보호되어 있습니다
2 - 문서를 읽기 전용으로 여는 것이 좋습니다
3 - 문서가 읽기 전용으로 열리도록 강제 실행됩니다
4 - 문서가 주석을 위해 잠겨 있습니다
Company 문서와 연결된 회사의 이름입니다.
LinksUpToDate 문서의 하이퍼링크가 최신 상태인지 여부를 나타냅니다. 하이퍼링크가 업데이트되었음을 나타내려면 이 요소를 true 로 설정합니다. 하이퍼링크가 오래되었음을 나타내려면 이 요소를 false 로 설정합니다.
HyperlinksChanged 이 부분에 있는 하나 이상의 하이퍼링크가 생산자에 의해 이 부분에서만 독점적으로 업데이트되었음을 지정합니다. 이 문서를 여는 다음 제작자는 이 부분에 지정된 새 하이퍼링크로 하이퍼링크 관계를 업데이트해야 합니다.
AppVersion 이 문서를 생성한 애플리케이션의 버전을 지정합니다. 이 요소의 내용은 XX.YYYY 형식이어야 하며 여기서 X 와 Y 는 숫자 값을 나타내거나 문서는 부적합한 것으로 간주됩니다.

예:

err := f.SetAppProps(&excelize.AppProperties{
    Application:       "Microsoft Excel",
    ScaleCrop:         true,
    DocSecurity:       3,
    Company:           "Company Name",
    LinksUpToDate:     true,
    HyperlinksChanged: true,
    AppVersion:        "16.0000",
})

애플리케이션 속성 가져오기

func (f *File) GetAppProps() (*AppProperties, error)

GetAppProps 는 문서 응용 프로그램 속성을 가져오는 기능을 제공합니다.

문서 속성 설정

func (f *File) SetDocProps(docProperties *DocProperties) error

통합 문서의 핵심 속성을 설정합니다. 설정할 수있는 속성은 다음과 같습니다:

속성 기술
Category 이 패키지의 내용을 분류합니다.
ContentStatus 내용의 상태. 예: "Draft", "Reviewed" 및 "Final"
Created 리소스 콘텐츠의 생성 시간입니다.
Creator 자원의 내용을 만드는 일을 주로 담당하는 주체.
Description 자원의 내용에 대한 설명.
Identifier 지정된 컨텍스트 내의 리소스에 대한 모호하지 않은 참조입니다.
Keywords 검색 및 색인 생성을 지원하는 구분 된 키워드 집합입니다. 일반적으로 속성의 다른 곳에서는 사용할 수없는 용어 목록입니다.
Language 자원의 지적 내용의 언어.
LastModifiedBy 마지막 수정을 수행 한 사용자입니다. 식별은 환경에 따라 다릅니다.
Modified 리소스 콘텐츠의 수정된 시간입니다.
Revision 리소스 콘텐츠의 개정 번호입니다.
Subject 자원 내용의 주제.
Title 리소스에 지정된 이름입니다.
Version 버전 번호. 이 값은 사용자 또는 응용 프로그램에 의해 설정됩니다.

예:

err := f.SetDocProps(&excelize.DocProperties{
    Category:       "category",
    ContentStatus:  "Draft",
    Created:        "2019-06-04T22:00:10Z",
    Creator:        "Go Excelize",
    Description:    "This file created by Go Excelize",
    Identifier:     "xlsx",
    Keywords:       "Spreadsheet",
    LastModifiedBy: "Go Author",
    Modified:       "2019-06-04T22:00:10Z",
    Revision:       "0",
    Subject:        "Test Subject",
    Title:          "Test Title",
    Language:       "en-US",
    Version:        "1.0.0",
})

문서 속성 가져오기

func (f *File) GetDocProps() (*DocProperties, error)

통합 문서의 핵심 속성을 가져옵니다.

통합 문서 보호

func (f *File) ProtectWorkbook(opts *WorkbookProtectionOptions) error

ProtectWorkbook 은 다른 사용자가 실수로 또는 의도적으로 통합 문서의 데이터를 변경, 이동 또는 삭제하는 것을 방지하는 기능을 제공합니다. 선택 필드 AlgorithmName 은 해시 알고리즘을 지정했으며 현재 XOR, MD4, MD5, SHA-1, SHA2-56, SHA-384 및 SHA-512 를 지원하며 해시 알고리즘이 지정되지 않은 경우 XOR 알고리즘을 기본값으로 사용합니다. 예를 들어 보호 설정으로 통합 문서를 보호합니다:

err := f.ProtectWorkbook(&excelize.WorkbookProtectionOptions{
    Password:      "password",
    LockStructure: true,
})

WorkbookProtectionOptions 는 통합 문서 보호 설정을 직접 매핑합니다.

type WorkbookProtectionOptions struct {
    AlgorithmName string
    Password      string
    LockStructure bool
    LockWindows   bool
}

통합 문서 보호 해제

func (f *File) UnprotectWorkbook(password ...string) error

UnprotectWorkbook 은 통합 문서에 대한 보호를 제거하는 기능을 제공하며 암호 확인을 통해 통합 문서 보호를 제거하기 위해 선택적 암호 매개 변수를 지정합니다.

results matching ""

    No results matching ""