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")
}
}