diff options
author | xuri <xuri.me@gmail.com> | 2022-11-11 01:50:07 +0800 |
---|---|---|
committer | xuri <xuri.me@gmail.com> | 2022-11-11 01:50:07 +0800 |
commit | 58b5dae5eb4948a3cde238ced1ae05db159749f5 (patch) | |
tree | ea265793558433a3f0a143bb7aa7f408eafd7408 /adjust_test.go | |
parent | 8753950d62c150034a919599a7762cef19035552 (diff) |
Support update column style when inserting or deleting columns
- Go Modules dependencies upgrade
- Unify internal variable name
- Unit test updated
Diffstat (limited to 'adjust_test.go')
-rw-r--r-- | adjust_test.go | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/adjust_test.go b/adjust_test.go index 010955c..0325616 100644 --- a/adjust_test.go +++ b/adjust_test.go @@ -366,3 +366,79 @@ func TestAdjustCalcChain(t *testing.T) { f.CalcChain = nil assert.NoError(t, f.InsertCols("Sheet1", "A", 1)) } + +func TestAdjustCols(t *testing.T) { + sheetName := "Sheet1" + preset := func() (*File, error) { + f := NewFile() + if err := f.SetColWidth(sheetName, "J", "T", 5); err != nil { + return f, err + } + if err := f.SetSheetRow(sheetName, "J1", &[]string{"J1", "K1", "L1", "M1", "N1", "O1", "P1", "Q1", "R1", "S1", "T1"}); err != nil { + return f, err + } + return f, nil + } + baseTbl := []string{"B", "J", "O", "O", "O", "U", "V"} + insertTbl := []int{2, 2, 2, 5, 6, 2, 2} + expectedTbl := []map[string]float64{ + {"J": defaultColWidth, "K": defaultColWidth, "U": 5, "V": 5, "W": defaultColWidth}, + {"J": defaultColWidth, "K": defaultColWidth, "U": 5, "V": 5, "W": defaultColWidth}, + {"O": 5, "P": 5, "U": 5, "V": 5, "W": defaultColWidth}, + {"O": 5, "S": 5, "X": 5, "Y": 5, "Z": defaultColWidth}, + {"O": 5, "S": 5, "Y": 5, "X": 5, "AA": defaultColWidth}, + {"U": 5, "V": 5, "W": defaultColWidth}, + {"U": defaultColWidth, "V": defaultColWidth, "W": defaultColWidth}, + } + for idx, columnName := range baseTbl { + f, err := preset() + assert.NoError(t, err) + assert.NoError(t, f.InsertCols(sheetName, columnName, insertTbl[idx])) + for column, expected := range expectedTbl[idx] { + width, err := f.GetColWidth(sheetName, column) + assert.NoError(t, err) + assert.Equal(t, expected, width, column) + } + assert.NoError(t, f.Close()) + } + + baseTbl = []string{"B", "J", "O", "T"} + expectedTbl = []map[string]float64{ + {"H": defaultColWidth, "I": 5, "S": 5, "T": defaultColWidth}, + {"I": defaultColWidth, "J": 5, "S": 5, "T": defaultColWidth}, + {"I": defaultColWidth, "O": 5, "S": 5, "T": defaultColWidth}, + {"R": 5, "S": 5, "T": defaultColWidth, "U": defaultColWidth}, + } + for idx, columnName := range baseTbl { + f, err := preset() + assert.NoError(t, err) + assert.NoError(t, f.RemoveCol(sheetName, columnName)) + for column, expected := range expectedTbl[idx] { + width, err := f.GetColWidth(sheetName, column) + assert.NoError(t, err) + assert.Equal(t, expected, width, column) + } + assert.NoError(t, f.Close()) + } + + f, err := preset() + assert.NoError(t, err) + assert.NoError(t, f.SetColWidth(sheetName, "I", "I", 8)) + for i := 0; i <= 12; i++ { + assert.NoError(t, f.RemoveCol(sheetName, "I")) + } + for c := 9; c <= 21; c++ { + columnName, err := ColumnNumberToName(c) + assert.NoError(t, err) + width, err := f.GetColWidth(sheetName, columnName) + assert.NoError(t, err) + assert.Equal(t, defaultColWidth, width, columnName) + } + + ws, ok := f.Sheet.Load("xl/worksheets/sheet1.xml") + assert.True(t, ok) + ws.(*xlsxWorksheet).Cols = nil + assert.NoError(t, f.RemoveCol(sheetName, "A")) + + assert.NoError(t, f.Close()) +} |