통합 문서
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
매개변수는 visible
이 false
인 경우에만 작동합니다.
예를 들어,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 , pageBreakPreview 및 pageLayout . |
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
입니다. 이 필드에 사용할 수 있는 값은 portrait
와 landscape
입니다.
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 | 홀수 페이지 바닥글 또는 DifferentOddEven 이 false 인 경우 기본 페이지 바닥글 |
OddHeader | 홀수 헤더 또는 DifferentOddEven 이 false 인 경우 기본 페이지 헤더 |
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 은 통합 문서에 대한 보호를 제거하는 기능을 제공하며 암호 확인을 통해 통합 문서 보호를 제거하기 위해 선택적 암호 매개 변수를 지정합니다.