สมุดงาน
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
ใช้เพื่อระบุว่าจะดึงค่าเริ่มต้นเมื่ออ่านค่าเซลล์หรือไม่ มีค่าเริ่มต้นเป็น false
(การใช้รูปแบบตัวเลข)
UnzipSizeLimit
ใช้เพื่อระบุขีดจำกัดขนาด (ในไบต์) สำหรับการบีบอัดเมื่อเปิดเอกสารสเปรดชีต ค่านี้ควรมากกว่าหรือเท่ากับ UnzipXMLSizeLimit
มีขีดจำกัดเริ่มต้นเป็น 16GB
UnzipXMLSizeLimit
ใช้เพื่อระบุขีดจำกัดหน่วยความจำ (ในไบต์) เมื่อบีบอัดแต่ละแผ่นงานและตารางข้อความร่วม และเมื่อขนาดเกินค่านี้ ไฟล์ XML ของแผ่นงานจะถูกบีบอัดลงไดเรกทอรีชั่วคราวของระบบ ค่านี้ควรน้อยกว่าหรือเท่ากับ UnzipSizeLimit
มีขีดจำกัดเริ่มต้นเป็น 16MB
ShortDatePattern
ใช้เพื่อระบุรูปแบบตัวเลขวันที่สั้น
LongDatePattern
ใช้เพื่อระบุรูปแบบตัวเลขวันที่ยาว
LongTimePattern
ใช้เพื่อระบุรูปแบบตัวเลขเวลายาว
CultureInfo
ใช้เพื่อระบุรูปแบบภูมิภาค ซึ่งจะถูกใช้เมื่ออ่านรูปแบบตัวเลขที่ได้รับผลกระทบจากการตั้งค่าวันที่และเวลาในภูมิภาคที่เฉพาะเจาะจง
สร้าง
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
ใช้ SaveAs
เพื่อบันทึกเอกสาร Excel เป็นไฟล์ที่ระบุไว้
ปิดสมุดงาน
func (f *File) Close() error
ปิดสมุดงานและทำความสะอาดแคชดิสก์ที่อาจเกิดขึ้นเมื่อเปิดเอกสาร
แผ่นงานใหม่
func (f *File) NewSheet(sheet string) (int, error)
สร้างแผ่นงานใหม่โดยใช้ชื่อแผ่นงานที่กำหนดและส่งคืนดัชนีของแผ่นงานในสมุดงาน โปรดทราบว่าเมื่อสร้างสมุดงานใหม่จะมีแผ่นงานเริ่มต้นที่ชื่อ Sheet1
ลบแผ่นงาน
func (f *File) DeleteSheet(sheet string) error
ลบแผ่นงานที่กำหนดโดยใช้ชื่อแผ่นงานที่กำหนด โปรดใช้เมธอดนี้อย่างระมัดระวัง เนื่องจากมันจะมีผลต่อสูตรคำนวณ การอ้างอิง ภาพแผนภูมิ และองค์ประกอบอื่น ๆ ที่เกี่ยวข้องกับแผ่นงานที่ถูกลบ หากค่าอ้างอิงองค์ประกอบอื่น ๆ ถึงค่าบนแผ่นงานที่ถูกลบ จะมีการแจ้งเตือนข้อผิดพลาด และอาจทำให้สมุดงานล้มเหลวในการเปิด การเรียกใช้เมธอดนี้ไม่ถูกต้องเมื่อสมุดงานมีเพียงแผ่นงานเดียว
คัดลอกแผ่นงาน
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
จัดกลุ่มแผ่นงานโดยใช้ชื่อแผ่นงานที่กำหนดและต้องรวมแผ่นงานเริ่มต้นในแผ่นงานที่กำหนด
ยกเลิกการจัดกลุ่มแผ่นงาน
func (f *File) UngroupSheets() error
ยกเลิกการจัดกลุ่มแผ่นงาน
ตั้งภาพพื้นหลังของแผ่นงาน
func (f *File) SetSheetBackground(sheet, picture string) error
ตั้งภาพพื้นหลังแบบเรียงกระพริบสำหรับแผ่นงานที่กำหนดโดยใช้ชื่อแผ่นงานที่กำหนดและเส้นทางของไฟล์ภาพ รูปแบบไฟล์ภาพที่รองรับรวมถึง: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF และ WMZ
func (f *File) SetSheetBackgroundFromBytes(sheet, extension string, picture []byte) error
ตั้งภาพพื้นหลังแบบเรียงกระพริบสำหรับแผ่นงานที่กำหนดโดยใช้ชื่อแผ่นงานที่กำหนด นามสกุลของรูปแบบของภาพ และข้อมูลรูปแบบภาพ รูปแบบไฟล์ภาพที่รองรับรวมถึง: BMP, EMF, EMZ, GIF, JPEG, JPG, PNG, SVG, TIF, TIFF, WMF และ WMZ
ตั้งแผ่นงานเริ่มต้น
func (f *File) SetActiveSheet(index int)
ตั้งแผ่นงานเริ่มต้นโดยใช้ค่าดัชนีที่กำหนด โดยที่ค่าควรมากกว่าหรือเท่ากับ 0
และน้อยกว่าจำนวนรวมของแผ่นงานทั้งหมดในสมุดงาน
รับดัชนีของแผ่นงานเริ่มต้น
func (f *File) GetActiveSheetIndex() int
รับดัชนีของแผ่นงานเริ่มต้น และส่งกลับ 0
หากไม่พบแผ่นงานเริ่มต้น
ตั้งค่าการมองเห็นของแผ่นงาน
func (f *File) SetSheetVisible(sheet string, visible bool, veryHidden ...bool) error
ตั้งค่าการมองเห็นของแผ่นงานโดยใช้ชื่อแผ่นงานที่กำหนดและพารามิเตอร์ความมองเห็น สมุดงานต้องมีอย่างน้อยหนึ่งแผ่นงานที่มองเห็น หากแผ่นงานที่กำหนดเป็นแผ่นงานเริ่มต้น การตั้งค่าการมองเห็นไม่ถูกต้อง พารามิเตอร์เลือกที่สาม veryHidden
เป็นที่ใช้ได้เฉพาะเมื่อค่าพารามิเตอร์ visible
คือ false
เช่นเพื่อซ่อนแผ่นงานชื่อ Sheet1
:
err := f.SetSheetVisible("Sheet1", false)
รับค่าการมองเห็นของแผ่นงาน
func (f *File) GetSheetVisible(sheet string) (bool, error)
รับการตั้งค่าการมองเห็นของแผ่นงานโดยใช้ชื่อแผ่นงานที่กำหนด ตัวอย่างเช่นเพื่อดึงการตั้งค่าการมองเห็นของแผ่นงานชื่อ Sheet1
:
visible, err := f.GetSheetVisible("Sheet1")
กำหนดคุณสมบัติของแผ่นงาน
func (f *File) SetSheetProps(sheet string, opts *SheetPropsOptions) error
กำหนดคุณสมบัติของแผ่นงานที่ระบุตามชื่อแผ่นงานและตัวเลือกคุณสมบัติที่กำหนดไว้ ตัวเลือกคุณสมบัติของแผ่นงานที่รองรับมีดังนี้:
คุณสมบัติ | ชนิด | คำอธิบาย |
---|---|---|
CodeName | *string |
ชื่อโค้ด |
EnableFormatConditionsCalculation | *bool |
กำหนดว่าการคำนวณการจัดรูปแบบตามเงื่อนไขจะถูกคำนวณโดยอัตโนมัติหรือไม่ มีค่าเริ่มต้นเป็น true |
Published | *bool |
กำหนดว่าแผ่นงานได้รับการเผยแพร่หรือไม่ มีค่าเริ่มต้นเป็น true |
AutoPageBreaks | *bool |
กำหนดว่าแผ่นงานจะแบ่งหน้าโดยอัตโนมัติหรือไม่ มีค่าเริ่มต้นเป็น true |
FitToPage | *bool |
กำหนดว่าจะเปิดใช้การพิมพ์พอดีกับหน้าหรือไม่ มีค่าเริ่มต้นเป็น false |
TabColorIndexed | *int |
ใช้สำหรับค่าสีดัชนีที่เข้ากันทางด้านหลัง |
TabColorRGB | *string |
ค่าสี ARGB มาตรฐาน |
TabColorTheme | *int |
ดัชนีสีธีมเริ่มต้นตั้งแต่ 0 |
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 |
ตัวอย่างเช่น การกำหนดให้แถวเริ่มต้นในแผ่นงานที่ชื่อว่า Sheet1
ถูกซ่อน:
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)
รับคุณสมบัติของแผ่นงานที่ระบุตามชื่อแผ่นงานที่กำหนดไว้
ตั้งค่าคุณสมบัติมุมมองแผ่นฉบับ
func (f *File) SetSheetView(sheet string, viewIndex int, opts *ViewOptions) error
ตั้งค่าคุณสมบัติมุมมองแผ่นฉบับโดยใช้ชื่อแผ่นฉบับที่กำหนด, ดัชนีมุมมอง, และตัวเลือกมุมมองที่กำหนด. viewIndex
สามารถเป็นจำนวนลบ, ในกรณีนี้จะนับถอยหลัง (-1
แทนมุมมองสุดท้าย). ตัวเลือกที่สนับสนุนสำหรับการตั้งค่าคุณสมบัติมุมมองแผ่นฉบับคือดังนี้:
คุณสมบัติ | ชนิด | คำอธิบาย |
---|---|---|
สีเส้นกริดเริ่มต้น | *bool |
ระบุว่าจะใช้สีเส้นกริดเริ่มต้นหรือไม่, ค่าเริ่มต้นคือ true |
RightToLeft | *bool |
ระบุว่าจะแสดงจากขวาไปซ้ายหรือไม่, ค่าเริ่มต้นคือ false |
แสดงสูตร | *bool |
ระบุว่าแผ่นงานจะแสดงสูตรหรือไม่, ค่าเริ่มต้นคือ false |
แสดงเส้นกริด | *bool |
ระบุว่าแผ่นงานจะแสดงเส้นกริดหรือไม่, ค่าเริ่มต้นคือ true |
แสดงส่วนหัวแถวและคอลัมน์ | *bool |
ระบุว่าแผ่นงานจะแสดงส่วนหัวแถวและคอลัมน์หรือไม่, ค่าเริ่มต้นคือ true |
แสดงบรรทัดคำบังคับ | *bool |
ระบุว่าจะแสดงบรรทัดคำบังคับในมุมมองหน้ากระดาษหรือไม่, ค่าเริ่มต้นคือ true |
แสดงค่าศูนย์ | *bool |
ระบุว่าจะแสดงค่าศูนย์ในเซลหรือไม่, ค่าเริ่มต้นคือ true , มิฉะนั้นจะแสดงเป็นช่องว่าง |
เซลด้านบนด้านซ้าย | *string |
ระบุพิกัดของเซลด้านบนด้านซ้ายที่มองเห็น |
มุมมอง | *string |
แสดงชนิดของมุมมองแผ่นงาน, มีค่า enum normal , pageBreakPreview , และ pageLayout |
ย่อ/ขยาย | *float64 |
เปอร์เซ็นต์มุมมองปัจจุบันของหน้าต่างการแสดง, จำกัดอยู่ในช่วง 10 ถึง 400, ค่าเริ่มต้นคือ 100 |
รับคุณสมบัติมุมมองของแผ่นฉบับ
func (f *File) GetSheetView(sheet string, viewIndex int) (ViewOptions, error)
รับคุณสมบัติมุมมองของแผ่นฉบับโดยใช้อย่างไรก็ตามชื่อแผ่นฉบับและดัชนีมุมมองที่กำหนด. viewIndex
สามารถเป็นจำนวนลบ, ในกรณีนี้จะนับถอยหลัง (-1
แทนมุมมองสุดท้าย).
ตั้งค่าเค้าโครงหน้ากระดาษในแผ่นงาน
func (f *File) SetPageLayout(sheet string, opts *PageLayoutOptions) error
กำหนดค่าเค้าโครงหน้ากระดาษของแผ่นงานตามชื่อแผ่นงานและพารามิเตอร์เค้าโครงหน้าหน้าที่กำหนด ค่าเค้าโครงที่รองรับปัจจุบันประกอบด้วย:
แอตทริบิวความยาวเรื่องใช้สำหรับระบุขนาดกระดาษหน้ากระดาษ โดยค่าเริ่มต้นของเค้าโครงหน้าหน้าคือ "Letter 8½ × 11 นิ้ว" ตารางด้านล่างแสดงความสัมพันธ์ระหว่างขนาดเค้าโครงหน้าและพารามิเตอร์ดัชนี Size
ใน Excelize:
ดัชนี | ขนาดกระดาษ |
---|---|
1 | Letter 8½ × 11 นิ้ว |
2 | Letter Small 8½ × 11 นิ้ว |
3 | Tabloid 11 × 17 นิ้ว |
4 | Ledger 17 × 11 นิ้ว |
... | ... |
40 | German Standard Fanfold 8.5 × 12 นิ้ว |
41 | German legal paper fanfold 8.5 × 13 นิ้ว |
42 | ISO B4 250 × 353 มม. |
43 | บัตรโปสการ์ดญี่ปุ่น 100 × 148 มม. |
44 | กระดาษมาตรฐาน 9 × 11 นิ้ว |
45 | กระดาษมาตรฐาน 10 × 11 นิ้ว |
46 | กระดาษมาตรฐาน 15 × 11 นิ้ว |
47 | จดหมายเชิงพิมพ์ 220 × 220 มม. |
50 | Letterhead enlarged 9.275 × 12 นิ้ว |
51 | Extra large legal paper 9.275 × 15 นิ้ว |
52 | Tabloid extra paper 11.69 × 18 นิ้ว |
53 | A4 extra large 236 × 322 มม. |
54 | Letterhead landscape 8.275 × 11 นิ้ว |
55 | A4 landscape 210 × 297 มม. |
56 | Letterhead extra large landscape 9.275 × 12 นิ้ว |
57 | กระดาษ SuperA/SuperA/A4 227 × 356 มม. |
58 | กระดาษ SuperB/SuperB/A3 305 × 487 มม. |
59 | Letterhead enlarged 8.5 × 12.69 นิ้ว |
60 | A4 enlarged 210 × 330 มม. |
61 | บัตรโปสการ์ดขนาด A5 148 × 210 มม. |
62 | บัตรโปสการ์ดขนาด JIS B5 182 × 257 มม. |
63 | A3 extra large 322 × 445 มม. |
64 | A5 extra large 174 × 235 มม. |
65 | ISO B5 extra large 201 × 276 มม. |
66 | A2 420 × 594 มม. |
67 | A3 landscape 297 × 420 มม. |
68 | A3 extra large landscape 322 × 445 มม. |
69 | บัตรโปสการ์ดญี่ปุ่นขนาดใหญ่ 200 × 148 มม. |
70 | A6 105 × 148 มม. |
71 | ซองจดหมายญี่ปุ่น Kaku #2 |
72 | ซองจดหมายญี่ปุ่น Kaku #3 |
73 | ซองจดหมายญี่ปุ่น Chou #3 |
74 | ซองจดหมายญี่ปุ่น Chou #4 |
75 | Letterhead landscape 11 × 8½ นิ้ว |
76 | A3 landscape 420 × 297 มม. |
77 | A4 landscape 297 × 210 มม. |
78 | A5 landscape 210 × 148 มม. |
79 | B4 (JIS) landscape 364 × 257 มม. |
80 | B5 (JIS) landscape 257 × 182 มม. |
81 | บัตรโปสการ์ดญี่ปุ่นแนวนอน 148 × 100 มม. |
82 | บัตรโปสการ์ดญี่ปุ่นขนาดใหญ่แนวนอน 148 × 200 มม. |
83 | A6 แนวนอน 148 × 105 มม. |
84 | ซองจดหมายญี่ปุ่น Kaku #2 แนวนอน |
85 | ซองจดหมายญี่ปุ่น Kaku #3 แนวนอน |
86 | ซองจดหมายญี่ปุ่น Chou #3 แนวนอน |
```markdown
| 87 | ซองญี่ปุ่นขนาด Chou #4 แนวนอน |
| 88 | B6 (JIS) 128 × 182 มม. |
| 89 | B6 (JIS) แนวนอน 182 × 128 มม. |
| 90 | 12 × 11 นิ้ว |
| 91 | ซองญี่ปุ่นขนาด You #4 |
| 92 | ซองญี่ปุ่นขนาด You #4 แนวนอน |
| 93 | จีนขนาด 16K 146 × 215 มม. |
| 94 | จีนขนาด 32K 97 × 151 มม. |
| 95 | จีนขนาด 32K ใหญ่ 97 × 151 มม. |
| 96 | ซองจีนขนาด #1 102 × 165 มม. |
| 97 | ซองจีนขนาด #2 102 × 176 มม. |
| 98 | ซองจีนขนาด #3 125 × 176 มม. |
| 99 | ซองจีนขนาด #4 110 × 208 มม. |
| 100 | ซองจีนขนาด #5 110 × 220 มม. |
| 101 | ซองจีนขนาด #6 120 × 230 มม. |
| 102 | ซองจีนขนาด #7 160 × 230 มม. |
| 103 | ซองจีนขนาด #8 120 × 309 มม. |
| 104 | ซองจีนขนาด #9 229 × 324 มม. |
| 105 | ซองจีนขนาด #10 324 × 458 มม. |
| 106 | จีนขนาด 16K แนวนอน |
| 107 | จีนขนาด 32K แนวนอน |
| 108 | จีนขนาด 32K ใหญ่ แนวนอน |
| 109 | ซองจีนขนาด #1 แนวนอน 165 × 102 มม. |
| 110 | ซองจีนขนาด #2 แนวนอน 176 × 102 มม. |
| 111 | ซองจีนขนาด #3 แนวนอน 176 × 125 มม. |
| 112 | ซองจีนขนาด #4 แนวนอน 208 × 110 มม. |
| 113 | ซองจีนขนาด #5 แนวนอน 220 × 110 มม. |
| 114 | ซองจีนขนาด #6 แนวนอน 230 × 120 มม. |
| 115 | ซองจีนขนาด #7 แนวนอน 230 × 160 มม. |
| 116 | ซองจีนขนาด #8 แนวนอน 309 × 120 มม. |
| 117 | ซองจีนขนาด #9 แนวนอน 324 × 229 มม. |
| 118 | ซองจีนขนาด #10 แนวนอน 458 × 324 มม. |
สมบัติ `Orientation` ใช้สำหรับระบุทิศทางเค้าโครงหน้ากระดาษ โดยทิศทางเริ่มต้นคือ "ตั้ง" และค่าทางเลือกได้แก่ `ตั้ง` และ `แนวนอน`
สมบัติ `FirstPageNumber` ใช้สำหรับระบุหมายเลขหน้าเริ่มต้น โดยค่าเริ่มต้นคือ อัตโนมัติ
สมบัติ `AdjustTo` ใช้สำหรับระบุอัตราสเกลหน้ากระดาษ โดยมีช่วงค่า 10 ถึง 400, นั่นคือสเกลจาก 10% ถึง 400%, และค่าเริ่มต้นคือ `100` สำหรับขนาดปกติ การตั้งค่าเป็น `FitToHeight` หรือ `FitToWidth` จะเข้าข่ายสมบัตินี้
สมบัติ `FitToHeight` ใช้สำหรับระบุการสเกลหน้าเพื่อปรับความกว้างของหน้ากระดาษ โดยค่าเริ่มต้นคือ `1`
สมบัติ `FitToWidth` ใช้สำหรับระบุการสเกลหน้าเพื่อปรับความสูงของหน้ากระดาษ โดยค่าเริ่มต้นคือ `1`
สมบัติ `BlackAndWhite` ใช้สำหรับระบุการพิมพ์โทนสีดำขาว เริ่มต้นคือ ปิด
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)
ดึงข้อมูลคุณสมบัติการจัดวางหน้างานของแผ่นงานโดยใช้ชื่อแผ่นงานและพารามิเตอร์การจัดวางหน้างานที่กำหนด
ตั้งขอบหน้าของแผ่นงาน
func (f *File) SetPageMargins(sheet string, opts *PageLayoutMarginsOptions) error
กำหนดขอบหน้าของแผ่นงานโดยใช้ชื่อแผ่นงานและพารามิเตอร์ขอบของหน้างานที่กำหนด ตัวเลือกขอบที่รองรับคือ:
ตัวเลือก | ประเภท | คำอธิบาย |
---|---|---|
ด้านล่าง | *float64 |
ขอบด้านล่าง |
ส่วนท้าย | *float64 |
ขอบส่วนท้าย |
หัว | *float64 |
ขอบหัว |
ซ้าย | *float64 |
ขอบซ้าย |
ขวา | *float64 |
ขอบขวา |
ด้านบน | *float64 |
ขอบด้านบน |
แนวนอน | *bool |
การจัดกึ่งกลางแนวนอนของหน้า |
แนวตั้ง | *bool |
การจัดกึ่งกลางแนวตั้งของหน้า |
รับขอบหน้างานของแผ่นงาน
func (f *File) GetPageMargins(sheet string) (PageLayoutMarginsOptions, error)
ดึงข้อมูลขอบหน้างานของแผ่นงานโดยใช้ชื่อแผ่นงานและพารามิเตอร์ขอบหน้างานที่กำหนด
ตั้งคุณสมบัติของสมุดงาน
func (f *File) SetWorkbookProps(opts *WorkbookPropsOptions) error
SetWorkbookProps ใช้สำหรับตั้งคุณสมบัติของสมุดงาน คุณสมบัติของสมุดงานที่รองรับคือ:
คุณสมบัติ | ประเภท | คำอธิบาย |
---|---|---|
Date1904 | *bool |
ระบุว่าสมุดงานใช้ระบบวันที่ 1904 หรือไม่ |
FilterPrivacy | *bool |
ความเป็นส่วนตัวของฟิลเตอร์ ระบุว่าโปรแกรมจะตรวจสอบข้อมูลส่วนตัวในสมุดงานหรือไม่ |
CodeName | *string |
ชื่อโค้ด |
รับคุณสมบัติของสมุดงาน
func (f *File) GetWorkbookProps() (WorkbookPropsOptions, error)
GetWorkbookProps ใช้สำหรับดึงคุณสมบัติของสมุดงาน
ตั้งค่าหัวกระดาษและท้ายกระดาษ
func (f *File) SetHeaderFooter(sheet string, opts *HeaderFooterOptions) error
ตั้งค่าหัวกระดาษและท้ายกระดาษของแผ่นงานโดยออกแบบตามชื่อของแผ่นงานที่กำหนดและตัวอักขระควบคุม
หัวกระดาษและท้ายกระดาษประกอบด้วยฟิลด์ต่อไปนี้:
ฟิลด์ | คำอธิบาย |
---|---|
AlignWithMargins | ตั้งค่าการจัดแนวของหัวกระดาษและท้ายกระดาษกับขอบหน้ากระดาษ |
DifferentFirst | ตั้งค่าหัวกระดาษและท้ายกระดาษสำหรับหน้าแรก |
DifferentOddEven | ตั้งค่าหัวกระดาษและท้ายกระดาษสำหรับหน้าคี่และคู่ |
ScaleWithDoc | ตั้งค่าให้หัวกระดาษและท้ายกระดาษปรับขนาดตามเอกสาร |
OddFooter | ตัวอักขระควบคุมสำหรับท้ายกระดาษของหน้าคี่ ใช้เพื่อตั้งค่าท้ายกระดาษสำหรับหน้าแรกเมื่อค่าของ DifferentOddEven เป็น false |
OddHeader | ตัวอักขระควบคุมสำหรับหัวกระดาษของหน้าคี่ ใช้เพื่อตั้งค่าหัวกระดาษสำหรับหน้าแรกเมื่อค่าของ DifferentOddEven เป็น false |
EvenFooter | ตัวอักขระควบคุมสำหรับท้ายกระดาษของหน้าคู่ |
EvenHeader | ตัวอักขระควบคุมสำหรับหัวกระดาษของหน้าคู่ |
FirstFooter | ตัวอักขระควบคุมสำหรับท้ายกระดาษของหน้าแรก |
FirstHeader | ตัวอักขระควบคุมสำหรับหัวกระดาษของหน้าแรก |
รหัสรูปแบบในตารางด้านล่างสามารถใช้กับฟิลด์ประเภทสตริง 6 ฟิลด์: OddHeader
, OddFooter
, EvenHeader
, EvenFooter
, FirstFooter
, FirstHeader
รหัสรูปแบบ | คำอธิบาย |
---|---|
&& |
ตัวอักษร "&" |
&font-size |
ขนาดตัวอักษรข้อความ โดยที่ขนาดตัวอักษรเป็นขนาดตัวอักษรทศนิยมในจุด |
&"ชื่อฟอนต์,ประเภทฟอนต์" |
สตริงชื่อฟอนต์ตัวอักษร, ชื่อฟอนต์ และสตริงประเภทฟอนต์ตัวอักษร |
&"-,Regular" |
รูปแบบข้อความปกติ ปิดโหมดอักษรหนาและตัวเอียง |
&A |
ชื่อของแผ่นงานปัจจุบัน |
&B หรือ &"-,Bold" |
รูปแบบข้อความหนา เปิดเปิดหรือมีการใช้ปกติโดยค่าเริ่มต้นคือปิด |
&D |
วันที่ปัจจุบัน |
&C |
ส่วนกลาง |
&E |
ขีดเส้นครั้งคู่สำหรับข้อความ |
&F |
ชื่อไฟล์สำหรับสมุดงานปัจจุบัน |
&G |
ระบุวัตถุเป็นพื้นหลัง (ไม่รองรับในปัจจุบัน) |
&H |
เงาข้อความ |
&I หรือ &"-,Italic" |
ข้อความเอียง |
&K |
รูปแบบสีฟอนต์ในรูปแบบสี RGB ในรูปแบบ RRGGBB สีธีมระบุด้วยรหัสสีธีมเป็น TTSNNN โดยที่ TT คือรหัสสีธีม S คือเฉดสีหรือรูปแบบสีของ "+" "-" คือค่าเฉดสี |
&L |
ส่วนซ้าย |
&N |
จำนวนทั้งหมดของหน้ากระดาษ |
&O |
รูปแบบข้อความเส้นรอบ |
&P[[+\|-]n] |
หากไม่มีคำย่อเลือก หมายเลขหน้าปัจจุบัน (ทศนิยม) |
&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
กำหนดชื่อและช่วงอ้างอิงโดยใช้ชื่อที่กำหนด, โดยขอบเขตที่เป็นค่าเริ่มต้นคือสมุดงาน (workbook) ตัวอย่างเช่น:
err := f.SetDefinedName(&excelize.DefinedName{
Name: "Amount",
RefersTo: "Sheet1!$A$2:$D$5",
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
ลบชื่อที่กำหนดโดยใช้ชื่อที่กำหนดและขอบเขตชื่อ, โดยขอบเขตที่เป็นค่าเริ่มต้นคือสมุดงาน (workbook) ตัวอย่างเช่น:
err := f.DeleteDefinedName(&excelize.DefinedName{
Name: "Amount",
Scope: "Sheet2",
})
กำหนดคุณสมบัติแอปพลิเคชันของสมุดงาน
func (f *File) SetAppProps(appProperties *AppProperties) error
กำหนดคุณสมบัติแอปพลิเคชันของสมุดงาน คุณสมบัติที่สามารถกำหนดได้รวมถึง:
คุณสมบัติ | รายละเอียด |
---|---|
Application | ชื่อของแอปพลิเคชันที่สร้างเอกสารนี้ |
ScaleCrop | ระบุการแสดงภาพตัวอย่างเอกสาร กำหนดเป็น true เพื่อปรับขนาดภาพตัวอย่างเอกสาร และ false เพื่อตัดเฉพาะขอบภาพตัวอย่างเอกสาร |
DocSecurity | ระดับความปลอดภัยของเอกสาร แทนด้วยค่าตัวเลข |
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)
รับคุณสมบัติแอปพลิเคชันของสมุดงาน
กำหนดคุณสมบัติของเอกสาร
func (f *File) SetDocProps(docProperties *DocProperties) error
กำหนดคุณสมบัติหลักของสมุดงาน คุณสมบัติที่สามารถกำหนดได้ ได้แก่:
คุณสมบัติ | คำอธิบาย |
---|---|
หมวดหมู่ | หมวดหมู่ของเนื้อหาของเอกสาร |
สถานะเนื้อหา | สถานะของเนื้อหาของเอกสาร เช่น ค่าอาจเป็น "Draft", "Reviewed" และ "Final" |
สร้างเมื่อ | เวลาเมื่อเอกสารถูกสร้าง แทนด้วย ISO 8601 รูปแบบ UTC เช่น 2019-06-04T22:00:10Z |
ผู้สร้างเอกสาร | ผู้สร้างเอกสาร |
คำอธิบายเนื้อหา | คำอธิบายของเนื้อหาทรัพยากร |
ตัวบ่งชี้ | อ้างอิงชัดเจนถึงทรัพยากรในบริบทที่กำหนด |
คำค้นหา | คำค้นหาของเอกสาร |
ภาษา | ภาษาหลักของเนื้อหาของเอกสาร |
แก้ไขล่าสุดโดย | ผู้ใช้ที่แก้ไขล่าสุดของเอกสาร |
แก้ไขเมื่อ | เวลาเมื่อเอกสารถูกแก้ไข แทนด้วย ISO 8601 รูปแบบ UTC เช่น 2019-06-04T22:00:10Z |
เวอร์ชัน | เวอร์ชันหมายเลข ซึ่งถูกกำหนดโดยผู้ใช้หรือแอปพลิเคชัน |
การรวมตัว | รุ่นการรวมตัวของเอกสาร |
ตัวอย่าง:
err := f.SetDocProps(&excelize.DocProperties{
Category: "หมวดหมู่",
ContentStatus: "Draft",
Created: "2019-06-04T22:00:10Z",
Creator: "Go Excelize",
Description: "ไฟล์นี้สร้างโดย Go Excelize",
Identifier: "xlsx",
Keywords: "สเปรดชีต",
LastModifiedBy: "ผู้เขียน Go",
Modified: "2019-06-04T22:00:10Z",
Revision: "0",
Subject: "เนื้อหาทดสอบ",
Title: "หัวข้อทดสอบ",
Language: "th-TH",
Version: "1.0.0",
})
ดึงคุณสมบัติของเอกสาร
func (f *File) GetDocProps() (*DocProperties, error)
ดึงคุณสมบัติหลักของสมุดงาน
ป้องกันสมุดงาน
func (f *File) ProtectWorkbook(opts *WorkbookProtectionOptions) error
ป้องกันโครงสร้างของสมุดงานด้วยรหัสผ่านเพื่อป้องกันผู้ใช้อื่นๆ ไม่ให้เห็นแผ่นงานที่ซ่อนไว้ การเพิ่ม ย้าย หรือซ่อนแผ่นงาน และเปลี่ยนชื่อแผ่นงาน ฟิลด์ AlgorithmName
รองรับการระบุอัลกอริทึมแฮช XOR, MD4, MD5, SHA-1, SHA-256, SHA-384 หรือ SHA-512 หากไม่มีการระบุอัลกอริทึมแฮช อัลกอริทึม XOR จะถูกใช้โดยค่าเริ่มต้น ตัวอย่าง เช่น ป้องกันโครงสร้างของสมุดงานด้วยรหัสผ่าน:
err := f.ProtectWorkbook(&excelize.WorkbookProtectionOptions{
Password: "รหัสผ่าน",
LockStructure: true,
})
WorkbookProtectionOptions กำหนดตัวเลือกสำหรับการป้องกันสมุดงาน
type WorkbookProtectionOptions struct {
AlgorithmName string
Password string
LockStructure bool
LockWindows bool
}
ยกเลิกการป้องกันสมุดงาน
func (f *File) UnprotectWorkbook(password ...string) error
ยกเลิกการป้องกันสมุดงาน โดยระบุพารามิเตอร์รหัสผ่านตัวเลือกเพื่อตรวจสอบและย้ายการป้องกันของสมุดงาน