ภาพรวมฟีเจอร์

ภาพรวมฟีเจอร์

Aspose.Cells FOSS สำหรับ API ของ Go มุ่งเน้นที่ Workbook, Worksheet, Cells และ Cell. คู่มือนี้จะอธิบายความสามารถอื่น ๆ ของไลบรารี: การจัดรูปแบบ, การตรวจสอบความถูกต้องของข้อมูล, ตาราง, ภาพ, และการอ่านแบบสตรีมมิ่งสำหรับไฟล์ขนาดใหญ่.


การจัดรูปแบบเซลล์

รวมการตั้งค่า Font, Fill, Alignment และ Border ไว้ใน Style ที่สามารถนำกลับใช้ได้, จากนั้นนำไปใช้กับเซลล์ด้วย Cell.SetStyle:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

boldStyle := cells_foss.NewStyle()
boldStyle.Font.Bold = true
boldStyle.Font.Size = 12

highlightStyle := cells_foss.NewStyle()
highlightStyle.Font.Color = "FFFFFFFF"
highlightStyle.Font.Bold = true
highlightStyle.Fill = &cells_foss.Fill{
	Type:  cells_foss.FillTypeSolid,
	Color: "FF4472C4",
}

cell, _ := ws.Cells().Get("A1")
cell.SetStyle(boldStyle)

Alignment ควบคุม Horizontal, Vertical และ WrapText; Border ควบคุมการแสดงผลของกฎ Top, Bottom, Left และ Right พร้อมกับ Color.


การตรวจสอบความถูกต้องของข้อมูล

Worksheet.AddDataValidation แนบกฎการตรวจสอบกับช่วงเซลล์. โครงสร้าง DataValidation จะบรรจุกฎ Type, หนึ่งหรือสองค่า Formula, และฟิลด์ข้อความแสดงข้อผิดพลาด:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

dv := &cells_foss.DataValidation{
	Type:             cells_foss.DataValidationTypeList,
	Formula1:         `"Apple,Banana,Cherry,Dragonfruit"`,
	AllowBlank:       true,
	ShowErrorMessage: true,
	ErrorTitle:       "Invalid Fruit",
	ErrorMessage:     "Please pick a fruit from the list.",
	ErrorStyle:       cells_foss.ErrorStyleStop,
}
ws.AddDataValidation("A2:A10", dv)

การตรวจสอบช่วงจำนวนเต็มใช้ DataValidationTypeWhole พร้อมกับ Formula1/Formula2 เป็นขอบเขตล่างและบน.


ตาราง

Worksheet.AddTable สร้าง Table ที่มีโครงสร้างบนช่วงหนึ่ง โดยมีแถวหัวเรื่องแบบเลือกได้และสไตล์ตารางที่ตั้งชื่อ:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]

tbl := ws.AddTable("A1:F6")
tbl.HasHeaderRow = true
tbl.StyleName = "TableStyleMedium6"

ดึงตารางที่มีอยู่ตามชื่อด้วย Worksheet.GetTable(name).


รูปภาพ

Worksheet.AddPicture ฝังภาพ; Picture.SetAnchor(row, col) กำหนดตำแหน่งของมัน:

wb := cells_foss.NewWorkbook()
ws := wb.Worksheets[0]
imageBytes := []byte{} // populate with real image bytes before use

pic := &cells_foss.Picture{Data: imageBytes, Format: "png"}
ws.AddPicture(pic)
pic.SetAnchor(5, 0)

การสตรีมไฟล์ขนาดใหญ่

StreamingReader อ่านแผ่นงานทีละแถวผ่านคอลแบ็ค ทำให้สมุดงานที่มีหลายพันแถวไม่จำเป็นต้องโหลดเต็มลงในหน่วยความจำ:

path := "outputfiles/large_workbook.xlsx"
sr := cells_foss.NewStreamingReader(path)
err := sr.ProcessRows("Sheet1", func(rowIdx int, cells map[string]string) error {
	// process one row at a time
	return nil
})
if err != nil {
	fmt.Printf("Error streaming: %v\n", err)
}

เคล็ดลับและแนวปฏิบัติที่ดีที่สุด

  • ใช้ StreamingReader แทนการโหลด Workbook แบบเต็มเมื่อไฟล์อาจมีหลายพันแถวและคุณต้องการเพียงอ่าน ไม่ต้องแก้ไข.
  • สร้าง Style ครั้งเดียวและใช้ซ้ำในหลายเซลล์แทนการสร้างใหม่ในแต่ละเซลล์.
  • Cell.SetFormula เก็บสตริงสูตรอย่างตรงไปตรงมา — จะถูกประเมินโดย Excel หรือ LibreOffice เมื่อเปิด ไม่ใช่โดยไลบรารีในเวลาบันทึก.
  • ตรวจสอบค่าที่ส่งกลับของ error จาก Save, AddDataValidation และการเรียกนำเข้า/ส่งออก CSV — การ I/O ของสเปรดชีตอาจล้มเหลวเมื่อเส้นทางไม่ถูกต้องหรืออินพุตมีรูปแบบไม่ถูกต้อง.

ปัญหาทั่วไป

IssueCauseแก้ไข
ค่าเซลล์ไม่แสดงหลังจาก Setอ้างอิงแผ่นงานผิดหรืออ้างอิงเซลล์ที่อยู่นอกช่วงยืนยันดัชนี Worksheet และว่าการอ้างอิงแบบ A1 ตรงกับเซลล์ที่ต้องการ
สูตรแสดงเป็นข้อความดิบแทนที่จะคำนวณไลบรารีจะเก็บเฉพาะสตริงสูตรเท่านั้น; ไม่ทำการประเมินสูตรเปิดไฟล์ใน Excel หรือ LibreOffice ซึ่งจะทำการคำนวณเมื่อเปิดไฟล์
การตรวจสอบข้อมูลไม่ปรากฏใน Excelการตรวจสอบได้ถูกเพิ่มไปยังช่วงที่ไม่ได้รวมเซลล์เป้าหมายยืนยันสตริงช่วง (เช่น "A2:A10") ครอบคลุมเซลล์ที่คุณคาดว่าจะตรวจสอบ

FAQ

ไลบรารีประเมินสูตรด้วยตนเองหรือไม่?

No. Cell.SetFormula/GetFormula เก็บสตริงสูตรที่ Excel หรือ LibreOffice ประเมินเมื่อไฟล์ถูกเปิด.

ฉันสามารถ stream-write เวิร์กบุ๊กขนาดใหญ่ได้หรือไม่, ไม่ใช่แค่ stream-read เท่านั้น?

StreamingReader ครอบคลุมการอ่านแบบสตรีม การเขียนเวิร์กบุ๊กขนาดใหญ่ในขณะนี้ดำเนินการผ่าน Workbook/Worksheet API มาตรฐานในหน่วยความจำ.

AddTable ทำการใช้ auto-filter โดยอัตโนมัติหรือไม่?

นี้ยังไม่ได้รับการยืนยันใน API ปัจจุบัน — มีเพียง HasHeaderRow และ StyleName ที่เป็นฟิลด์ Table ที่ได้รับการบันทึกไว้ ตรวจสอบกับไฟล์ .xlsx ที่สร้างขึ้นหากสิ่งนี้มีความสำคัญต่อกรณีการใช้งานของคุณ.


API Reference สรุป

คลาส / เมธอดคำอธิบาย
Workbook.NewWorkbook / Saveสร้างและบันทึกเวิร์กบุ๊ค
Worksheet.Cellsเข้าถึงคอลเลกชันเซลล์ของแผ่นงาน
Cells.Get / Set / Remove / Allอ่าน, เขียน, ลบ, และนับจำนวนเซลล์
Cell.SetStyle / SetFormula / GetFormulaนำสไตล์และสูตรไปใช้กับเซลล์
Style, Font, Fill, Alignment, Borderสร้างรูปแบบเซลล์ที่นำกลับใช้ได้
Worksheet.AddDataValidationแนบกฎการตรวจสอบกับช่วงเซลล์
Worksheet.AddTable / GetTableสร้างและดึงช่วงตารางที่มีโครงสร้าง
Worksheet.AddPicture / Picture.SetAnchor(row, col)ฝังและกำหนดตำแหน่งรูปภาพ
StreamingReader.ProcessRowsสตรีมแผ่นงานทีละแถว
Workbook.ExportToCSV / ImportFromCSVแปลงระหว่าง XLSX และ CSV
Workbook.SetPassword / VerifyPasswordป้องกันและตรวจสอบรหัสผ่านของเวิร์กบุ๊ก

ดูเพิ่มเติม

 ภาษาไทย