| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package excelize
- import (
- "encoding/xml"
- "strings"
- )
- // SetColWidth provides function to set the width of a single column or multiple
- // columns. For example:
- //
- // xlsx := excelize.CreateFile()
- // xlsx.SetColWidth("Sheet1", "A", "H", 20)
- // err := xlsx.Save()
- // if err != nil {
- // fmt.Println(err)
- // os.Exit(1)
- // }
- //
- func (f *File) SetColWidth(sheet, startcol, endcol string, width float64) {
- min := titleToNumber(strings.ToUpper(startcol)) + 1
- max := titleToNumber(strings.ToUpper(endcol)) + 1
- if min > max {
- min, max = max, min
- }
- var xlsx xlsxWorksheet
- name := "xl/worksheets/" + strings.ToLower(sheet) + ".xml"
- xml.Unmarshal([]byte(f.readXML(name)), &xlsx)
- col := xlsxCol{
- Min: min,
- Max: max,
- Width: width,
- CustomWidth: true,
- }
- if xlsx.Cols != nil {
- xlsx.Cols.Col = append(xlsx.Cols.Col, col)
- } else {
- cols := xlsxCols{}
- cols.Col = append(cols.Col, col)
- xlsx.Cols = &cols
- }
- output, _ := xml.Marshal(xlsx)
- f.saveFileList(name, replaceWorkSheetsRelationshipsNameSpace(string(output)))
- }
|