校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > golang 解析word文檔操作

golang 解析word文檔操作

熱門標簽:湛江crm外呼系統排名 寧波語音外呼系統公司 不封卡外呼系統 仙桃400電話辦理 重慶慶云企業400電話到哪申請 宿遷便宜外呼系統代理商 地圖標注免費定制店 鄭州智能語音電銷機器人價格 上海極信防封電銷卡價格

baliance/gooxml

gooxml是可以對整個office document提供支持的golang庫,功能很強大,這里簡單給出對word文檔的讀取案例

安裝

go get baliance.com/gooxml/

go build -i baliance.com/gooxml/…

解析word代碼

package main
import (
 "fmt"
 "log"
 "baliance.com/gooxml/document"
)
func main() {
 doc, err := document.Open("ml.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()
 }
}

舉個例子:

下圖為word文檔的截圖,總共四行,第一行有三種字體

運行代碼結果如下:

補充:golang go doc 與 godoc 文檔生成查看

Go語言項目十分重視代碼的文檔,在軟件設計中,文檔對于軟件的可維護和易使用具有重大的影響。因此,文檔必須是書寫良好并準確的,與此同時它還需要易于書寫和維護。

Go語言注釋

Go語言中注釋一般分為兩種,分別是單行注釋和多行注釋

單行注釋是以 // 開頭的注釋,可以出現在任何地方。

多行注釋也叫塊注釋,以 /* 開頭,以 */ 結尾,不可以嵌套使用,一般用于包的文檔描述或注釋成塊的代碼片段。

每一個 package 都應該有相關注釋,在 package 語句之前的注釋內容將被默認認為是這個包的文檔, package 的注釋應該提供一些相關信息并對整體功能做簡要的介紹。

在日常開發過程中,可以使用go doc和godoc命令生成代碼的文檔。

go doc

go doc 命令打印Go語言程序實體上的文檔。可以使用參數來指定程序實體的標識符。

Go語言程序實體是指變量、常量、函數、結構體以及接口。

程序實體標識符就是程序實體的名稱。

go doc 用法

go doc [-u] [-c] [package|[package.]symbol[.methodOrField]]

可用的標識:

標識 說明
-all 顯示所有文檔
-c 匹配程序實體時,大小寫敏感
-cmd 將命令(main包)視為常規程序包,如果要顯示main包的doc,請指定這個標識
-src 顯示完整源代碼
-u 顯示未導出的程序實體

示例

輸出指定 package ,指定類型,指定方法的注釋

$ go doc sync.WaitGroup.Add

輸出指定 package ,指定類型的所有程序實體,包括未導出的

$ go doc -u -all sync.WaitGroup

輸出指定 package 的所有程序實體(非所有詳細注釋)

$ go doc -u sync

godoc

godoc命令主要用于在無法聯網的環境下,以web形式,查看Go語言標準庫和項目依賴庫的文檔。

在 go 1.12 之后的版本中,godoc不再做為go編譯器的一部分存在。依然可以通過go get命令安裝:

go get -u -v golang.org/x/tools/cmd/godoc

國內的安裝方法

mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/tools.git
cd tools/cmd/godoc
go install 
ls -alh $GOPATH/bin

通過終端查看文檔

go doc命令

$ go doc help

usage: go doc [-u] [-c] [package|[package.]symbol[.method]]

可以看到,go doc接受的參數,可以是包名,也可以是包里的結構、方法等,默認為顯示當前目錄下的文檔。

查看系統log包信息

linux@ubuntu:/usr/local/go/src/log$ go doc
package log // import "log"
 
Package log implements a simple logging package. It defines a type, Logger,
with methods for formatting output. It also has a predefined 'standard'
Logger accessible through helper functions Print[f|ln], Fatal[f|ln], and
Panic[f|ln], which are easier to use than creating a Logger manually. That
logger writes to standard error and prints the date and time of each logged
message. Every log message is output on a separate line: if the message
being printed does not end in a newline, the logger will add one. The Fatal
functions call os.Exit(1) after writing the log message. The Panic functions
call panic after writing the log message.
 
const Ldate = 1  iota ...
func Fatal(v ...interface{})
func Fatalf(format string, v ...interface{})
func Fatalln(v ...interface{})
func Flags() int
func Output(calldepth int, s string) error
func Panic(v ...interface{})
func Panicf(format string, v ...interface{})
func Panicln(v ...interface{})
func Prefix() string
func Print(v ...interface{})
func Printf(format string, v ...interface{})
func Println(v ...interface{})
func SetFlags(flag int)
func SetOutput(w io.Writer)
func SetPrefix(prefix string)
type Logger struct{ ... }
 func New(out io.Writer, prefix string, flag int) *Logger

列出當前包中方法、結構、常量等

查看系統log包中Fatal方法

linux@ubuntu:/usr/local/go/src/log$ go doc log.Fatal
func Fatal(v ...interface{})
 Fatal is equivalent to Print() followed by a call to os.Exit(1).

列出當前函數和注釋說明

查看系統log包中Logger結構

linux@ubuntu:/usr/local/go/src/log$ go doc Logger
type Logger struct {
  // Has unexported fields.
}
 A Logger represents an active logging object that generates lines of output
 to an io.Writer. Each logging operation makes a single call to the Writer's
 Write method. A Logger can be used simultaneously from multiple goroutines;
 it guarantees to serialize access to the Writer.
func New(out io.Writer, prefix string, flag int) *Logger
func (l *Logger) Fatal(v ...interface{})
func (l *Logger) Fatalf(format string, v ...interface{})
func (l *Logger) Fatalln(v ...interface{})
func (l *Logger) Flags() int
func (l *Logger) Output(calldepth int, s string) error
func (l *Logger) Panic(v ...interface{})
func (l *Logger) Panicf(format string, v ...interface{})
func (l *Logger) Panicln(v ...interface{})
func (l *Logger) Prefix() string
func (l *Logger) Print(v ...interface{})
func (l *Logger) Printf(format string, v ...interface{})
func (l *Logger) Println(v ...interface{})
func (l *Logger) SetFlags(flag int)
func (l *Logger) SetOutput(w io.Writer)
func (l *Logger) SetPrefix(prefix string)

列出Logger結構定義以及Logger結構操作的方法集

通過網頁查看文檔

godoc命令

$ godoc -http=:6060

godoc會監聽6060端口,通過網頁訪問 http://127.0.0.1:6060,godoc基于GOROOT和GOPATH路徑下的代碼生成文檔的。打開首頁如下,我們自己項目工程文檔和通過go get的代碼文檔都在Packages中的Third party里面。

編寫自己的文檔

1、設計接口函數代碼

創建documents/calc.go文件

/*
簡易計算器計算自定義包
 */
package documents
 
// 一種實現兩個整數相加的函數,
// 返回值為兩整數相加之和
func Add(a, b int) int {
 return a + b
}
 
// 一種實現兩個整數相減的函數,
// 返回值為兩整數相減之差
func Sub(a, b int) int {
 return a - b
}
 
// 一種實現兩個整數相乘的函數,
// 返回值為兩整數相乘之積
func Mul(a, b int) int {
 return a * b
}
 
// 一種實現兩個整數相除的函數,
// 返回值為兩整數相除之商
func Div(a, b int) int {
 if b == 0 {
  panic("divide by zero")
 } 
 return a / b
}

2、設計Example示例代碼

創建documents/calc_test.go文件,給calc.go中每個函數編寫Example函數

package documents 
import (
 "fmt"
)
 
func ExampleAdd() {
 result := Add(4, 2)
 fmt.Println("4 + 2 =", result)
 
 // Output:
 // 4 + 2 = 6
}
 
func ExampleSub() {
 result := Sub(4, 2)
 fmt.Println("4 - 2 =", result)
 
 // Output:
 // 4 - 2 = 2
}
 
func ExampleMul() {
 result := Mul(4, 2)
 fmt.Println("4 * 2 =", result)
 
 // Output:
 // 4 * 2 = 8
}
 
func ExampleDiv() {
 result := Div(4,2)
 fmt.Println("4 / 2 =", result)
 
 // Output:
 // 4 / 2 = 2
}

3、網頁查看文檔

注意以上兩個文件必須在$GOPATH/src路徑下,使用godoc命令創建文檔,用網頁打開顯示如下

編寫文檔規則

1、文檔中顯示的詳細主體內容,大多是由用戶注釋部分提供,注釋的方式有兩種,單行注釋"http://"和代碼塊"/* */"注釋。

2、在源碼文件中,在package語句前做注釋,在文檔中看到的就是Overview部分, 注意:此注釋必須緊挨package語句前一行,要作為Overview部分的,注釋塊中間不能有空行。

3、在函數、結構、變量等前做注釋的,在文檔中看到的就是該項詳細描述。注釋規則同上。

4、編寫的Example程序,函數名必須以Example為前綴,可將測試的輸出結果放在在函數尾部,以"http:// Output:"另起一行,然后將輸出內容注釋,并追加在后面。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • golang 64位linux環境下編譯出32位程序操作
  • golang-redis之sorted set類型操作詳解
  • golang 字符串切片去重實例
  • golang逐行讀取文件的操作
  • Golang中的path/filepath包用法
  • 以alpine作為基礎鏡像構建Golang可執行程序操作
  • golang 如何獲取pem格式RSA公私鑰長度

標簽:電子產品 儋州 物業服務 西雙版納 遼寧 青海 海南 安康

巨人網絡通訊聲明:本文標題《golang 解析word文檔操作》,本文關鍵詞  golang,解析,word,文檔,操作,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang 解析word文檔操作》相關的同類信息!
  • 本頁收集關于golang 解析word文檔操作的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产欧美日韩精品在线| 国产成人综合在线播放| 国产精品人妖ts系列视频| 日韩精品一区二区三区视频| 欧美一二三区在线| 久久精品男人的天堂| 国产三级三级三级精品8ⅰ区| www欧美成人18+| 国产精品免费久久久久| 亚洲欧美日韩久久| 免费在线观看视频一区| 国产成人啪午夜精品网站男同| 国产成人av资源| 91黄色免费网站| 久久久久国色av免费看影院| 国产精品看片你懂得| 亚洲1区2区3区视频| 国产一区二区三区免费在线观看| 国产成都精品91一区二区三| 白白色亚洲国产精品| 日韩欧美不卡一区| 夜夜嗨av一区二区三区中文字幕 | 精品午夜一区二区三区在线观看| 伦理电影国产精品| 欧美日韩精品欧美日韩精品| 2021国产精品久久精品| 中文字幕一区二区日韩精品绯色| 亚洲福中文字幕伊人影院| 国产在线国偷精品产拍免费yy| 在线播放视频一区| 欧美无砖专区一中文字| 91精品国产免费久久综合| 亚洲女厕所小便bbb| 久久99精品久久久久久久久久久久| 在线中文字幕一区| 亚洲一区在线观看免费观看电影高清| 国产福利一区二区| 国产欧美日韩另类视频免费观看| 国产尤物一区二区在线| 欧美电影精品一区二区| 国产一区二区三区久久悠悠色av| 欧美一区二区三区四区高清| 亚洲二区在线观看| 678五月天丁香亚洲综合网| 亚洲成人在线网站| 久久精品水蜜桃av综合天堂| 国产精品白丝jk白祙喷水网站| 欧美精品一区二| 91亚洲精品一区二区乱码| 亚洲男人的天堂在线观看| 91精品久久久久久久久99蜜臂| 久草在线在线精品观看| 国产精品久久久久久亚洲伦 | 久久久精品国产免费观看同学| 麻豆精品视频在线观看| 中文字幕亚洲不卡| 日韩欧美国产一二三区| 成人激情动漫在线观看| 老司机午夜精品| 亚洲影视在线播放| 中文字幕乱码一区二区免费| 欧美日韩黄色一区二区| 成年人国产精品| 国产美女精品人人做人人爽| 一区二区激情视频| 亚洲精品欧美综合四区| 精品对白一区国产伦| 欧美96一区二区免费视频| 日韩一级完整毛片| 欧美日韩国产高清一区二区 | 一区二区三区不卡视频在线观看| 日韩午夜在线播放| 日韩精品中文字幕在线不卡尤物| 91久久精品网| 91福利在线看| 欧美日韩免费电影| 欧美一三区三区四区免费在线看 | 成人综合婷婷国产精品久久蜜臀 | 久久久久久久电影| 久久久噜噜噜久久人人看| 日韩欧美亚洲国产另类| 久久综合99re88久久爱| xnxx国产精品| 中文字幕一区二区视频| 亚洲在线视频网站| 日韩av网站在线观看| 国产99久久久国产精品免费看 | 麻豆视频观看网址久久| 激情文学综合网| 99久久精品国产毛片| 欧美私模裸体表演在线观看| 欧美日韩不卡在线| 欧美—级在线免费片| 亚洲精品乱码久久久久久久久| 日日摸夜夜添夜夜添国产精品| 美美哒免费高清在线观看视频一区二区 | 国产麻豆视频精品| 精品一区二区免费在线观看| av在线不卡电影| 日韩免费电影网站| 一区二区三区在线播| 国产米奇在线777精品观看| 日本韩国欧美国产| 国产欧美va欧美不卡在线| 午夜成人免费电影| 欧美日韩美少妇 | 欧美视频在线观看一区二区| 久久九九99视频| 国产精品影视在线| 国产性色一区二区| 国产在线视视频有精品| 日韩欧美中文字幕公布| 日本系列欧美系列| 欧美成人video| 久久精品国产77777蜜臀| 日韩一区二区不卡| 日本怡春院一区二区| 国产91精品在线观看| 91蜜桃在线观看| 一本色道久久综合亚洲aⅴ蜜桃 | 久久亚洲精华国产精华液| 欧美亚洲国产一区二区三区| 91女厕偷拍女厕偷拍高清| 国产一区二区伦理| 国产真实精品久久二三区| 国产米奇在线777精品观看| 国内外成人在线视频| 国产不卡一区视频| 91视频一区二区三区| 欧美亚洲综合色| 日韩欧美一级在线播放| 精品国产三级a在线观看| 国产精品区一区二区三区| 亚洲情趣在线观看| 蜜桃传媒麻豆第一区在线观看| 久久99国产精品免费| 成人97人人超碰人人99| 欧美日韩一级二级三级| 欧美日韩国产在线播放网站| 成人污视频在线观看| 色系网站成人免费| 精品剧情v国产在线观看在线| 久久免费视频色| 亚洲国产精品嫩草影院| 国产精品资源网站| 欧美一级二级三级乱码| 亚洲视频一二三| 国产乱码精品1区2区3区| 91国偷自产一区二区开放时间| 精品久久久久久综合日本欧美| 亚洲日本在线视频观看| 久久综合综合久久综合| 欧美一区二区视频免费观看| 最新日韩av在线| 97精品国产97久久久久久久久久久久 | 久久成人18免费观看| 在线观看91av| 天天av天天翘天天综合网色鬼国产| 国产伦精品一区二区三区免费| 6080午夜不卡| 五月综合激情婷婷六月色窝| 91久久香蕉国产日韩欧美9色| 国产精品免费视频观看| 丁香婷婷综合色啪| 亚洲黄色小视频| 欧美在线免费视屏| 日韩成人免费电影| 91精品在线观看入口| 久久疯狂做爰流白浆xx| 日韩免费高清视频| 成人激情综合网站| 亚洲成av人在线观看| 91精品欧美福利在线观看| 国产一区在线视频| 亚洲欧美自拍偷拍| 欧美丝袜自拍制服另类| 男女男精品网站| 中文字幕在线观看不卡视频| 欧美三区免费完整视频在线观看| 日本视频一区二区| 国产精品入口麻豆原神| 69堂亚洲精品首页| 不卡视频一二三四| 青青草国产成人av片免费| 欧美国产日韩亚洲一区| 欧美精品久久99久久在免费线| 国产精品国产自产拍高清av | 精品日本一线二线三线不卡| 成人午夜激情视频| 久久成人综合网| 亚洲一区中文在线| 一色屋精品亚洲香蕉网站| 欧美日韩国产不卡| 91免费观看国产| 国产.精品.日韩.另类.中文.在线.播放| 亚洲欧洲日韩在线| 久久色.com| 国产亚洲一二三区| 久久久国际精品| 久久久蜜臀国产一区二区|