func NewSheet(s string, o osfile.OsFile) Sheet { name, err1 := NewFilename(s) if err1 != nil { log.WithFields(log.Fields{ "path": o.Dir, "filename": name.String(), "err": err1, }).Error(asset.Tr("error_file_csv_unmarshal")) } r := o.NewReader(name.String()) defer r.Close() rcsv := csv.NewReader(r) out, err2 := rcsv.ReadAll() if err2 != nil { log.WithFields(log.Fields{ "path": o.Dir, "filename": name.String(), "view": out, "err": err2, }).Error(asset.Tr("error_file_csv_unmarshal")) } tab := strtab.NewT(out[0], out[1:]...) return Sheet{name, tab, nil} }