2016-04-15 4 views
1

Я пытался ниже код, но я получаю сообщение об ошибкеОшибки при чтении файла первенствовать в 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())

Если вы не думаете, что вы получите какую-либо ошибку, вы можете просто назначьте его _ и проигнорируйте его, но вы действительно должны быть готовы обработать ошибку. Поэтому Go заставляет вас использовать переменные, и почему она не автоматически отбрасывать другие возвращаемые значения (например, ошибки от 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 сегодня, поэтому мои вопросы могут показаться смешными. –

Смежные вопросы