go读取docx文档

介绍

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格式片段-------------你好呀
0%