ไปที่ห้องสมุดเพื่อสร้างและแก้ไขเอกสาร MS Word

Open Source Go Library สำหรับการจัดการและการทำงานอัตโนมัติของการประมวลผลคำทั่วไป เช่น การแทรกส่วนหัวและส่วนท้าย ตารางและรูปภาพลงในไฟล์ Word DOCX และอื่นๆ

unioffice เป็นไลบรารี Go แบบโอเพ่นซอร์สที่ทรงพลังที่ช่วยให้นักพัฒนาซอฟต์แวร์สามารถจัดการเอกสารคำและทำงานการประมวลผลคำทั่วไปโดยอัตโนมัติได้อย่างง่ายดายภายในแอปพลิเคชันของตนเองโดยไม่ต้องใช้ Microsoft Word ห้องสมุดได้รับการปรับให้เหมาะสมและช่วยให้คุณสามารถแก้ไขโค้ดได้อย่างง่ายดายเพื่อให้ตรงกับความต้องการของคุณ

ไลบรารี unioffice เป็นไลบรารีแบบ Go-based ที่สามารถใช้สำหรับสร้าง แก้ไข จัดรูปแบบ และประมวลผลเอกสาร Office Open XML ไลบรารีรองรับคุณสมบัติการประมวลผลคำที่สำคัญหลายประการ เช่น การอ่าน การเขียนและการแก้ไขเอกสาร Word รองรับการจัดรูปแบบข้อความ สารบัญที่สร้างโดยอัตโนมัติ การวางบนหน้าเอกสาร การแทรกส่วนหัวและส่วนท้าย การเพิ่มตาราง การเปิดเอกสารเป็นเทมเพลต , รองรับฟิลด์แบบฟอร์มและอีกมากมาย

Previous Next

เริ่มต้นใช้งานยูนิออฟฟิศ

วิธีที่แนะนำในการติดตั้ง unioffice ลงในโปรเจ็กต์คือการใช้ GitHub โปรดใช้คำสั่งต่อไปนี้เพื่อการติดตั้งที่ราบรื่น

ติดตั้ง unioffice ผ่าน GitHub

go get github.com/unidoc/unioffice/
go build -i github.com/unidoc/unioffice/...   

สร้างเอกสาร Word DOCX ผ่าน Go API

ยูนิออฟฟิศไลบรารีโอเพ่นซอร์สได้จัดเตรียมสิ่งอำนวยความสะดวกสำหรับการสร้างเอกสาร Word DOCX ใหม่อย่างง่ายดาย คุณยังสามารถเปิดและแก้ไขเอกสาร Microsoft Word ที่มีอยู่ภายในแอปพลิเคชันของคุณเองได้อย่างง่ายดาย ไลบรารียังมีฟีเจอร์สำหรับการเพิ่มย่อหน้าข้อความใหม่ การแทรกรูปภาพลงในหน้า การจัดแนวข้อความ การเพิ่มส่วนหัวและส่วนท้าย การเพิ่มตาราง และอื่นๆ อีกมากมาย

เข้าถึงคุณสมบัติเอกสาร Word ผ่านไป API

func main() {
	doc, err := document.Open("document.docx")
	if err != nil {
		log.Fatalf("error opening document: %s", err)
	}
	defer doc.Close()
	cp := doc.GetOrCreateCustomProperties()
	// You can read properties from the document
	fmt.Println("AppVersion", *cp.GetPropertyByName("AppVersion").X().Lpwstr)
	fmt.Println("Company", *cp.GetPropertyByName("Company").X().Lpwstr)
	fmt.Println("DocSecurity", *cp.GetPropertyByName("DocSecurity").X().I4)
	fmt.Println("LinksUpToDate", *cp.GetPropertyByName("LinksUpToDate").X().Bool)
	fmt.Println("Non-existent", cp.GetPropertyByName("nonexistentproperty"))
	// And change them as well
	cp.SetPropertyAsLpwstr("Company", "Another company") // text, existing property
	fmt.Println("Company", *cp.GetPropertyByName("Company").X().Lpwstr)
	// Adding new properties
	cp.SetPropertyAsLpwstr("Another text property", "My text value") // text
	cp.SetPropertyAsI4("Another integer number property", 42)        // int32
	cp.SetPropertyAsR8("Another float number property", 3.14)        // float64
	cp.SetPropertyAsDate("Another date property", time.Now())        // date
	doc.SaveToFile("document_customized.docx")
	// For new documents all is the same
	docNew := document.New()
	defer docNew.Close()
	cpNew := docNew.GetOrCreateCustomProperties()
	cpNew.SetPropertyAsLpwstr("Another text property", "My text value") // text
	cpNew.SetPropertyAsI4("Another integer number property", 42)        // int23
	cpNew.SetPropertyAsR8("Another float number property", 3.14)        // float64
	cpNew.SetPropertyAsDate("Another date property", time.Now())        // date
	docNew.SaveToFile("document_new.docx")
}
  

 แทรกรูปภาพในไฟล์ Word DOCX

ยูนิออฟฟิศไลบรารีโอเพนซอร์สช่วยให้นักพัฒนาซอฟต์แวร์สามารถใช้รูปภาพภายในเอกสาร Microsoft Word ได้ รองรับฟังก์ชันการทำงานต่างๆ เช่น การแทรกรูปภาพไปยังตำแหน่งที่คุณเลือก การแก้ไขรูปภาพที่มีอยู่ ข้อความที่ล้อมรอบรูปภาพ การลบรูปภาพ และอื่นๆ อีกมากมาย ในการเพิ่มรูปภาพ จำเป็นต้องระบุชื่อและตำแหน่งของรูปภาพ

จัดการรูปภาพในเอกสาร Word ผ่านไป API

func main() {
	doc := document.New()
	defer doc.Close()
	img1, err := common.ImageFromFile("gophercolor.png")
	if err != nil {
		log.Fatalf("unable to create image: %s", err)
	}
	img2data, err := ioutil.ReadFile("gophercolor.png")
	if err != nil {
		log.Fatalf("unable to read file: %s", err)
	}
	img2, err := common.ImageFromBytes(img2data)
	if err != nil {
		log.Fatalf("unable to create image: %s", err)
	}
	img1ref, err := doc.AddImage(img1)
	if err != nil {
		log.Fatalf("unable to add image to document: %s", err)
	}
	img2ref, err := doc.AddImage(img2)
	if err != nil {
		log.Fatalf("unable to add image to document: %s", err)
	}
	para := doc.AddParagraph()
	anchored, err := para.AddRun().AddDrawingAnchored(img1ref)
	if err != nil {
		log.Fatalf("unable to add anchored image: %s", err)
	}
	anchored.SetName("Gopher")
	anchored.SetSize(2*measurement.Inch, 2*measurement.Inch)
	anchored.SetOrigin(wml.WdST_RelFromHPage, wml.WdST_RelFromVTopMargin)
	anchored.SetHAlignment(wml.WdST_AlignHCenter)
	anchored.SetYOffset(3 * measurement.Inch)
	anchored.SetTextWrapSquare(wml.WdST_WrapTextBothSides)
	run := para.AddRun()
	for i := 0; i < 16; i++ {
		run.AddText(lorem)
		// drop an inline image in
		if i == 13 {
			inl, err := run.AddDrawingInline(img1ref)
			if err != nil {
				log.Fatalf("unable to add inline image: %s", err)
			}
			inl.SetSize(1*measurement.Inch, 1*measurement.Inch)
		}
		if i == 15 {
			inl, err := run.AddDrawingInline(img2ref)
			if err != nil {
				log.Fatalf("unable to add inline image: %s", err)
			}
			inl.SetSize(1*measurement.Inch, 1*measurement.Inch)
		}
	}
	doc.SaveToFile("image.docx")
}
  

เพิ่มส่วนหัวและส่วนท้ายลงในเอกสาร Word

หัวกระดาษและท้ายกระดาษสามารถใช้เพื่อรวมข้อมูลที่ผู้ใช้ต้องการให้ปรากฏบนทุกหน้าของเอกสาร เช่น ชื่อผู้เขียน ชื่อเอกสาร หรือหมายเลขหน้า ไลบรารี unioffice ช่วยให้นักพัฒนาซอฟต์แวร์เพิ่มส่วนหัวและส่วนท้ายลงในเอกสารคำได้อย่างง่ายดาย นอกจากนี้ยังช่วยให้มีส่วนหัวและส่วนท้ายที่แตกต่างกันขึ้นอยู่กับส่วนเอกสาร นอกจากนี้ยังรวมการสนับสนุนฟังก์ชันคู่ คี่ และแรกด้วย

เพิ่มส่วนหัวและส่วนท้ายของเอกสาร Word ผ่านไป API

func main() {
	doc := document.New()
	defer doc.Close()
	img, err := common.ImageFromFile("gophercolor.png")
	if err != nil {
		log.Fatalf("unable to create image: %s", err)
	}
	hdr := doc.AddHeader()
	// We need to add a reference of the image to the header instead of to the
	// document
	iref, err := hdr.AddImage(img)
	if err != nil {
		log.Fatalf("unable to to add image to document: %s", err)
	}
	para := hdr.AddParagraph()
	para.Properties().AddTabStop(2.5*measurement.Inch, wml.ST_TabJcCenter, wml.ST_TabTlcNone)
	run := para.AddRun()
	run.AddTab()
	run.AddText("My Document Title")
	imgInl, _ := para.AddRun().AddDrawingInline(iref)
	imgInl.SetSize(1*measurement.Inch, 1*measurement.Inch)
	// Headers and footers are not immediately associated with a document as a
	// document can have multiple headers and footers for different sections.
	doc.BodySection().SetHeader(hdr, wml.ST_HdrFtrDefault)
	ftr := doc.AddFooter()
	para = ftr.AddParagraph()
	para.Properties().AddTabStop(6*measurement.Inch, wml.ST_TabJcRight, wml.ST_TabTlcNone)
	run = para.AddRun()
	run.AddText("Some subtitle goes here")
	run.AddTab()
	run.AddText("Pg ")
	run.AddField(document.FieldCurrentPage)
	run.AddText(" of ")
	run.AddField(document.FieldNumberOfPages)
	doc.BodySection().SetFooter(ftr, wml.ST_HdrFtrDefault)
	lorem := `Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin lobortis, lectus dictum feugiat tempus, sem neque finibus enim, sed eleifend sem nunc ac diam. Vestibulum tempus sagittis elementum`
	for i := 0; i < 5; i++ {
		para = doc.AddParagraph()
		run = para.AddRun()
		run.AddText(lorem)
	}
	doc.SaveToFile("header-footer.docx")
}
  

การทำงานกับตารางใน Word DOCX

ยูนิออฟฟิศไลบรารีโอเพ่นซอร์สช่วยให้โปรแกรมเมอร์คอมพิวเตอร์สามารถเพิ่มและแก้ไขตารางภายในเอกสารเวิร์ดได้ ตารางมีประโยชน์มากและสามารถใช้เพื่อจัดระเบียบและนำเสนอข้อมูลในทางที่ดีขึ้น รองรับการเพิ่มตารางที่มีและไม่มีเส้นขอบ และยังช่วยให้สร้างสไตล์ตารางได้อย่างง่ายดาย คุณสามารถวางเนื้อหาลงในตารางและปรับขนาดได้ตามความต้องการ

 ไทย