Skip to content

golang 基于gooxml解析word文档,解析文本 和 表格

Notifications You must be signed in to change notification settings

CZHIC/gooxml-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

gooxml-test

安装gooxml

```
go get baliance.com/gooxml/
go build -i baliance.com/gooxml/...
```

打开文件

``` 
f, err := os.Open("your file path")
    if err != nil {
	logger.Error(err)
    }
defer f.Close()
doc, err := document.Read(f, filesize)
```

解析纯文本

``` 
for _, par := range doc.Paragraphs() {  //读取文档类所有段落
	for _, run := range par.Runs() {
	    txt := run.Text()
	    fmt.Println("Paragraphs", txt)
	}
}
```

解析表格

``` 
for tabId, tbl := range doc.Tables() {  //返回文档类所有表格
	for rowId, row := range tbl.Rows() {
	    for cellId, cell := range row.Cells() {
		tex := ""

		for _, par := range cell.Paragraphs() {
		    for _, run := range par.Runs() {
			if run.Text() == "" {
			    continue
			}
			tex += run.Text()
			// fmt.Println("粗体", run.Properties().IsBold(), run.Text())   //判断是否是粗体
			//fmt.Println("粗体准确属性", run.Properties().BoldValue(), run.Text())
			// fmt.Println("斜体", run.Properties().IsItalic(), run.Text()) //判断是否是斜体
			// fmt.Println("斜体准确属性", run.Properties().ItalicValue(), run.Text())

		    }
		}
		fmt.Println("table"+gconv.String(tabId), "行"+gconv.String(rowId), "列"+gconv.String(cellId), tex)
	    }
	}
    }
```

解析图片

``` 
    //var fileBytes []byte
    for k, img := range doc.Images {  //返回文档内所有图片 
	logger.Print("image:", k, img.Format(), img.Path(), img.Size())
	// imagName := gconv.String(time.Now().Unix()) + "_" + gconv.String(k) + "." + img.Format()
	// f, err := os.OpenFile(img.Path(), os.O_RDONLY, 0600)
	// if err != nil {
	//  fmt.Println(err.Error())
	// }
	// fileBytes, _ = ioutil.ReadAll(f)
	// // 上传到cos服务
	// fileUrl, cosKey, _ := gcos.CosStorageUpLoad(fileBytes, "img", imagName)
	// logger.Print(fileUrl, cosKey)
	f.Close()

    }
```

更多word文档操作

``` 
 https://github.com/carmel/gooxml
```

About

golang 基于gooxml解析word文档,解析文本 和 表格

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published