主要包      导入(   “bufio"   “fmt"   “os"      “;github.com/tealeg/xlsx"   )      函数main () {   如果len (os.Args) !=3 {   fmt.Println(“用法:xlsx路径名sheetname")   os.Exit (1)   }      xlsxFile犯错:=xlsx.OpenFile (os.Args [1])   如果犯错!=nil {   fmt.Println (err)   os.Exit (1)   }      表:=xlsxFile.Sheet [os.Args [2]]   如果表==nil {   fmt.Println(“表单名不存在“)   os.Exit (1)   }      为{   标题:=getStdinInput(“请输入列名:“)   如果标题==?“{   fmt.Println(标题)   继续   }      titleColIndex:=findColByTitle(表、标题)   如果titleColIndex==1 {   fmt.Println(“列名不存在“)   继续   }      rowLen:=len (sheet.Rows)   结果:{}=[]字符串   rowIndex:=1;rowIndex & lt;rowLen;rowIndex + + {   内容:=表。细胞(rowIndex titleColIndex) .String ()   结果=append(结果,内容)   }      fmt.Println(结果)   }   }      字符串函数getStdinInput(提示字符串){   fmt.Print(提示)   扫描仪:=bufio.NewScanner (os.Stdin)   如果scanner.Scan () {   返回scanner.Text ()   }      返回“;“   }      func findColByTitle(表* xlsx。表、标题字符串)int {   titleRow:=sheet.Rows [0]   titleIndex,上校:=titleRow范围。细胞{   如果col.String()==标题{   返回titleIndex   }   }      返回1   }

先看主函数,主函数首先进行命令行参数校验,使用该程序需要使用两个参数,一个是xlsx的路径,一个是需要使用的表单名称,之后打开xlsx文件和对应的表单,通过标准输入读取列名,然后在对应的表单中查找列名,通过遍历所有行,获取该列的所有数据。从标准输入读取数据和查找对应的列索引这里封装了两个函数。

getStdinInput()函数接收一个参数,作为输入的提示语句,该函数基于扫描仪获取标准输入的文本。

findColByTitle()函数传入两个参数:表单对象的指针和列名。通过遍历所有的标题行中的列,查找匹配的列索引并返回。

可以自己创建一个标准的xlsx文件,第一行是标题行,然后实用程序测试一下,之前有使用Python做Excel处理,但是感觉运行效率还是Golang更好一些。

感谢各位的阅读!关于Golang对Excel进行处理的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!