2016-04-15 61 views
1

我嘗試下面的代碼,但我得到一個錯誤錯誤讀取Excel文件在golang

「單值上下文多值cell.String()」

代碼

package main 
import (
"fmt" 
"github.com/tealeg/xlsx" 
) 
func main() { 
    excelFileName := "test.xlsx" 
    xlFile, err := xlsx.OpenFile(excelFileName) 
    if err != nil { 

    } 
for _, sheet := range xlFile.Sheets { 
    for _, row := range sheet.Rows { 
      for _, cell := range row.Cells { 
      fmt.Printf("%s ", cell.String(), "123") 
    } 
      fmt.Printf("\n") 
    } 
    } 
} 
} 

回答

3

變化

for _, cell := range row.Cells { 
    fmt.Printf("%s ", cell.String(), "123") 
} 

for _, cell := range row.Cells { 
    val, _ := cell.String() 
    fmt.Printf("%s ", val) 
} 
+0

了it..reallly有幫助謝謝 –

0

您嘗試使用返回多個值作爲一個參數(以fmt.Printf())功能

如果你不認爲你會得到任何錯誤,你可以只需將其分配給_並忽略它,但您確實應該準備好處理該錯誤。這就是爲什麼去強迫你使用的變量,以及爲什麼它不會自動放棄其他的返回值(比如從cell.String()錯誤)

val, err := cell.String() 
if err != nil { 
    // handle the error 
} 
fmt.Printf("%s ", val) // you had an extra arg of "123"? 
+0

我已經安裝了teaeg XLS包和我已將我的文件保存在同一個文件夾「src \ github.com \ tealeg \ xlsx \ 」但是,我收到「readexcel.go:4:1:發現軟件包xlsx(cell.go)和main(readexcel.go )在E:\ RI L \ Golang \ src \ github.com \ tealeg \ xlsx「 –

+0

您不需要將文件放入xlsx包中,頂部的導入將允許您訪問這些文件。 –

+0

這意味着我可以把我的文件放在任何文件夾中(如GOPATH中指定的)?我今天開始了GO,所以我的問題看起來很有趣。 –