介绍
docx 是一个带有 xml 的 zip 文件, srinathh/gooxml 是一个用于创建 Office Open XML 文档的库.这个库只支持office 2007以及之后的版本的文档,即只能读取.docx、.xlsx 和 .pptx
,面不能读取.doc、.xls 和 .ppt
安装
go get baliance.com/gooxml/document
使用
解析docx文档代码
package main
import (
"baliance.com/gooxml/document"
"fmt"
"log"
)
func main() {
doc, err := document.Open("zngw.docx")
if err != nil {
log.Fatalf("error opening document: %s", err)
}
//doc.Paragraphs()得到包含文档所有的段落的切片
for i, para := range doc.Paragraphs() {
//run为每个段落相同格式的文字组成的片段
fmt.Println("-----------第", i, "段-------------")
for j, run := range para.Runs() {
fmt.Print("\t-----------第", j, "格式片段-------------")
fmt.Print(run.Text())
}
fmt.Println()
}
}
测试
如有以下文档,有一个标题, 第二行是一段文字, 第三行有二种字体.
代码读取的结果为:
-----------第 0 段-------------
-----------第0格式片段-------------这里是标题
-----------第 1 段-------------
-----------第0格式片段-------------这里是docx测试文档
-----------第 2 段-------------
-----------第 3 段-------------
-----------第0格式片段-------------Hello World! -----------第1格式片段-------------你好呀