From 58b5dae5eb4948a3cde238ced1ae05db159749f5 Mon Sep 17 00:00:00 2001 From: xuri Date: Fri, 11 Nov 2022 01:50:07 +0800 Subject: Support update column style when inserting or deleting columns - Go Modules dependencies upgrade - Unify internal variable name - Unit test updated --- adjust_test.go | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) (limited to 'adjust_test.go') 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()) +} -- cgit v1.2.1