ชีทงาน
กำหนดความปรากฏของคอลัมน์
func (f *File) SetColVisible(sheet, col string, visible bool) error
กำหนดความปรากฏของคอลัมน์ที่กำหนดตามชื่อของชีทและชื่อของคอลัมน์ที่กำหนด ฟังก์ชันนี้สามารถทำงานพร้อมกันได้ ตัวอย่างเช่น เพื่อซ่อนคอลัมน์ D
ในชีทที่ชื่อ Sheet1
:
err := f.SetColVisible("Sheet1", "D", false)
ซ่อนคอลัมน์ D
ถึง F
ในชีทที่ชื่อ Sheet1
:
err := f.SetColVisible("Sheet1", "D:F", false)
กำหนดความกว้างของคอลัมน์
func (f *File) SetColWidth(sheet, startCol, endCol string, width float64) error
กำหนดความกว้างของหนึ่งหรือมากกว่าคอลัมน์ที่กำหนดตามชื่อของชีท ช่วงคอลัมน์ และค่าความกว้าง ฟังก์ชันนี้สามารถทำงานพร้อมกันได้ ตัวอย่างเช่น เพื่อกำหนดความกว้างของคอลัมน์ A
ถึง H
ในชีทที่ชื่อ Sheet1
เป็น 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
หมายถึงสถานะซ่อน ฟังก์ชันนี้สามารถทำงานพร้อมกันได้ ตัวอย่างเช่น เพื่อรับความปรากฏของคอลัมน์ D
ในชีทที่ชื่อ Sheet1
:
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
แทรกคอลัมน์ว่างไว้ก่อนคอลัมน์ที่ระบุตามชื่อแผ่นงาน ชื่อคอลัมน์ และจำนวนของคอลัมน์ที่จะถูกแทรก ตัวอย่างเช่น แทรก 2 คอลัมน์ว่างไว้ก่อนคอลัมน์C
ในแผ่นงานที่ชื่อ Sheet1
:
err := f.InsertCols("Sheet1", "C", 2)
แทรกแถว
func (f *File) InsertRows(sheet string, row, n int) error
แทรกแถวว่างไว้ก่อนแถวที่ระบุตามชื่อแผ่นงาน เลขแถว และจำนวนของแถวที่จะถูกแทรก ตัวอย่างเช่น แทรก 2 แถวว่างไว้ก่อนแถวที่ 3 ในแผ่นงานที่ชื่อ Sheet1
:
err := f.InsertRows("Sheet1", 3, 2)
ทับและคัดลอกแถว
func (f *File) DuplicateRow(sheet string, row int) error
ทับข้อมูลหลังแถวที่ระบุตามชื่อแผ่นงาน ตัวอย่างเช่น คัดลอกแถวที่ 2 ของแผ่นงานที่ชื่อ Sheet1
ไปยังแถวที่ 3:
err := f.DuplicateRow("Sheet1", 2)
กรุณาใช้วิจารณญาณเมื่อใช้วิธีนี้ เนื่องจากมันจะส่งผลกระทบกับการเปลี่ยนแปลงทั้งหมดในสูตรเดิม กราฟ และทรัพยากรการอ้างอิงอื่นในแผ่นงาน หากแผ่นงานมีค่าการอ้างอิงใด ๆ เปิดด้วยแอปพลิเคชัน Excel หลังจากใช้วิธีนี้อาจทำให้มีข้อผิดพลาดของไฟล์ ในปัจจุบัน excelize รองรับเฉพาะการอัปเดตบางส่วนเท่านั้นในแผ่นงาน
คัดลอกแถว
func (f *File) DuplicateRowTo(sheet string, row, row2 int) error
คัดลอกแถวหลังจากแถวที่ระบุตามชื่อแผ่นงานและเลขแถว ตัวอย่างเช่น คัดลอกแถวที่สองของแผ่นงานที่ชื่อ Sheet1
หลังจากแถวที่ 7:
err := f.DuplicateRowTo("Sheet1", 2, 7)
กรุณาใช้วิจารณญาณเมื่อใช้วิธีนี้ เนื่องจากมันจะส่งผลกระทบกับการเปลี่ยนแปลงทั้งหมดในสูตรเดิม กราฟ และทรัพยากรการอ้างอิงอื่นในแผ่นงาน หากแผ่นงานมีค่าการอ้างอิงใด ๆ เปิดด้วยแอปพลิเคชัน Excel หลังจากใช้วิธีนี้อาจทำให้มีข้อผิดพลาดของไฟล์ ในปัจจุบัน excelize รองรับเฉพาะการอัปเดตเฉพาะบางส่วนในแผ่นงาน
ตั้งระดับโครงสร้างของแถว
func (f *File) SetRowOutlineLevel(sheet string, row int, level uint8) error
สร้างกลุ่มตามชื่อแผ่นงาน เลขแถว และพารามิเตอร์ระดับโครงสร้าง ตัวอย่างเช่น สร้างกลุ่มระดับ 1 ที่แถวที่ 2 ของแผ่นงานที่ชื่อ Sheet1
.
err := f.SetRowOutlineLevel("Sheet1", 2, 1)
ตั้งระดับโครงสร้างคอลัมน์
func (f *File) SetColOutlineLevel(sheet, col string, level uint8) error
สร้างกลุ่มโดยใช้ชื่อแผ่นงาน ชื่อคอลัมน์ และพารามิเตอร์ระดับโครงสร้างที่กำหนด ตัวอย่างเช่น สร้างกลุ่มระดับ 2 ในคอลัมน์ D
ของแผ่นงานที่ชื่อ Sheet1
โดยใช้โค้ดดังนี้
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)
รับระดับโครงสร้างโดยใช้ชื่อแผ่นงานและชื่อคอลัมน์ที่กำหนด ตัวอย่างเช่น รับระดับโครงสร้างของคอลัมน์ D
ในแผ่นงานที่ชื่อ Sheet1
ด้วยโค้ดดังนี้
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)
รับพิกัดโดยขึ้นอยู่กับชื่อ WorkSheet ที่กำหนด, ค่าเซลล์ หรือ regular expression ที่กำหนด. ฟังก์ชันนี้รองรับการค้นหาที่ตรงกันเท่านั้นของตัวเลขและตัวหนังสือ, ไม่รองรับผลลัพธ์การคำนวณ, ตัวเลขที่จัดรูปแบบ, และการค้นหาเงื่อนไข หากผลลัพธ์การค้นหาเป็นเซลล์รวม จะส่งคืนพิกัดของมุมบนซ้ายของพื้นที่ที่รวมเอาไว้.
ตัวอย่างเช่น ค้นหาพิกัดของค่า 100
ในชีทที่ชื่อ Sheet1
:
result, err := f.SearchSheet("Sheet1", "100")
ตัวอย่างเช่น ค้นหาพิกัดของค่าตัวเลขในช่วง 0-9
ในชีทที่ชื่อ Sheet1
:
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
โดยอนุญาตให้เลือกเซลล์ที่ล็อค, เลือกเซลล์ที่ปลดล็อค, และสถานการณ์แก้ไข:
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
ลบคอลัมน์ที่ระบุตามชื่อชีทที่กำหนดและชื่อคอลัมน์. ตัวอย่างเช่น ลบคอลัมน์ C
ในชีทที่ชื่อ Sheet1
:
err := f.RemoveCol("Sheet1", "C")
โปรดใช้วิธีนี้ด้วยความระมัดระวัง เนื่องจากนี้จะมีผลต่อการเปลี่ยนแปลงของสูตรเดิม, แผนภูมิ, และการอ้างอิงทรัพยากรอื่น ๆ ในชีท. หากชีทมีค่าที่อ้างถึง, การใช้วิธีนี้อาจทำให้เกิดข้อผิดพลาดของไฟล์เมื่อเปิดด้วยโปรแกรม Excel หลังการใช้. Excelize ในปัจจุบันรองรับการอัพเดตบางส่วนเท่านั้นของค่าที่อ้างอิงในชีท.
ลบแถว
func (f *File) RemoveRow(sheet string, row int) error
ลบแถวที่ระบุตามชื่อชีทที่กำหนดและหมายเลขแถว. ตัวอย่างเช่น ลบแถวที่ 3 ในชีทที่ชื่อ Sheet1
:
err := f.RemoveRow("Sheet1", 3)
โปรดใช้วิธีนี้ด้วยความระมัดระวัง เนื่องจากนี้จะมีผลต่อการเปลี่ยนแปลงของสูตรเดิม, แผนภูมิ, และการอ้างอิงทรัพยากรอื่น ๆ ในชีท. หากชีทมีค่าที่อ้างถึง, การใช้วิธีนี้อาจทำให้เกิดข้อผิดพลาดของไฟล์เมื่อเปิดด้วยโปรแกรม Excel หลังการใช้. Excelize ในปัจจุบันรองรับการอัพเดตบางส่วนเท่านั้นของค่าที่อ้างอิงในชีท.
กำหนดค่าตามคอลัมน์
func (f *File) SetSheetCol(sheet, cell string, slice interface{}) error
กำหนดค่าตามคอลัมน์ตามชื่อชีทที่กำหนด, พิกัดเริ่มต้น, และอ้างอิงประเภท slice
. ตัวอย่างเช่น กำหนดค่าตามคอลัมน์บนคอลัมน์ B
ของชีทที่ชื่อ Sheet1
, โดยมีเซลล์ B6
เป็นพิกัดเริ่มต้น:
err := f.SetSheetCol("Sheet1", "B6", &[]interface{}{"1", nil, 2})
กำหนดโดยแถว
func (f *File) SetSheetRow(sheet, cell string, slice interface{}) error
กำหนดค่าตามแถวโดยขึ้นอยู่กับชื่อของแผ่นงานที่กำหนดไว้ ตั้งแต่พิกัดเริ่มต้น และการอ้างอิงถึงประเภทของ slice
ฟังก์ชันนี้ปลอดภัยสำหรับการใช้งานพร้อมกัน ตัวอย่างเช่น ในแถวที่ 6 ของแผ่นงานที่มีชื่อว่า Sheet1
ค่าสามารถถูกกำหนดโดยแถวตั้งแต่เซลล์ 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)
ได้รับพื้นที่ที่ใช้งานของแผ่นงานที่ระบุขึ้นอยู่กับชื่อของแผ่นงานที่กำหนดไว้