I'm new to Go and I'm struggling with scope (as others).
The code below generates:
./excel.go:24: err declared and not used ./excel.go:25: sheet declared and not used Why does this happen? I have declared both err and sheet in the parent scope, haven't I?
Excel.go:
package main import ( "os" "fmt" "github.com/tealeg/xlsx" ) func main() { var file *xlsx.File var sheet *xlsx.Sheet var row *xlsx.Row var cell *xlsx.Cell var err error fileName := "MyXLSXFile.xlsx" if _, err := os.Stat(fileName); os.IsNotExist(err) { fmt.Printf("File does not exist so create one"); file = xlsx.NewFile() sheet, err = file.AddSheet("Sheet1") } else { fmt.Printf("File exists so open"); file, err := xlsx.OpenFile(fileName) // <-- line 24 sheet := file.Sheets[0] // <-- line 25 } row = sheet.AddRow() cell = row.AddCell() cell.Value = "I am a cell!" cell = row.AddCell() cell.Value = "I am another cell!" err = file.Save(fileName) if err != nil { fmt.Printf("help") } }