1package sheet23import "fmt"45// Tables among the random edits (randedit_test.go): made, renamed,6// resized, styled and removed, and formulas reading them by column,7// so their growth, header renames and bindings meet every other edit.89func init() { randEdits = append(randEdits, (*randBook).editTable) }1011// randTables are the names the edits give tables.12var randTables = []string{"Sales", "Costs"}1314func (r *randBook) editTable(e *edits) string {15 s, name := r.sheet(e), randTables[e.n(len(randTables))]16 w := s.wb17 switch e.n(6) {18 case 0:19 rg := e.rect()20 err := s.CreateTable(name, rg)21 return fmt.Sprintf("table %s on %s!%s (%v)", name, s.name, rg, err)22 case 1:23 to := randTables[e.n(len(randTables))]24 err := w.RenameTable(name, to)25 return fmt.Sprintf("rename table %s to %s (%v)", name, to, err)26 case 2:27 rg := e.rect()28 err := w.ResizeTable(name, rg)29 return fmt.Sprintf("resize table %s to %s (%v)", name, rg, err)30 case 3:31 err := w.RemoveTable(name)32 return fmt.Sprintf("remove table %s (%v)", name, err)33 case 4:34 banded, header := e.n(2) == 0, e.n(2) == 035 err := w.SetTableStyle(name, banded, header)36 return fmt.Sprintf("style table %s %v %v (%v)", name, banded, header, err)37 }38 a := e.addr()39 in := []string{40 "=SUM(" + name + "[Column1])", "=" + name + "[@Column2]*2", "=ROWS(" + name + "[#All])",41 "=COUNTA(" + name + ")", "=SUM(" + name + "[[#Headers],[#Data],[Column1]:[Column2]])",42 }[e.n(5)]43 err := s.Set(a, in)44 return fmt.Sprintf("%s!%s = %q (%v)", s.name, a, in, err)45}