|
|
|
@ -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())
|
|
|
|
|
}
|
|
|
|
|