Bläddra i källkod

Add SetRowHeight function

Nikolas Silva 8 år sedan
förälder
incheckning
8ce12b60b8
2 ändrade filer med 38 tillägg och 0 borttagningar
  1. 10 0
      excelize_test.go
  2. 28 0
      rows.go

+ 10 - 0
excelize_test.go

@@ -261,3 +261,13 @@ func TestSMergeCell(t *testing.T) {
 		t.Log(err)
 		t.Log(err)
 	}
 	}
 }
 }
+
+func TestSetRowHeight(t *testing.T) {
+	xlsx := CreateFile()
+	xlsx.SetRowHeight("Sheet1", 0, 50)
+	xlsx.SetRowHeight("Sheet1", 3, 90)
+	err := xlsx.WriteTo("./test/Workbook_5.xlsx")
+	if err != nil {
+		t.Log(err)
+	}
+}

+ 28 - 0
rows.go

@@ -36,6 +36,34 @@ func (f *File) GetRows(sheet string) [][]string {
 	return r
 	return r
 }
 }
 
 
+// SetRowHeight provides a function to set the height of a single row.
+// For example:
+//
+//    xlsx := excelize.CreateFile()
+//    xlsx.SetRowHeight("Sheet1", 0, 50)
+//    err := xlsx.Save()
+//    if err != nil {
+//        fmt.Println(err)
+//        os.Exit(1)
+//    }
+//
+func (f *File) SetRowHeight(sheet string, rowIndex int, height float64) {
+	xlsx := xlsxWorksheet{}
+	name := "xl/worksheets/" + strings.ToLower(sheet) + ".xml"
+	xml.Unmarshal([]byte(f.readXML(name)), &xlsx)
+
+	rows := rowIndex + 1
+	cells := 0
+
+	xlsx = completeRow(xlsx, rows, cells)
+
+	xlsx.SheetData.Row[rowIndex].Ht = strconv.FormatFloat(height, 'f', -1, 64)
+	xlsx.SheetData.Row[rowIndex].CustomHeight = true
+
+	output, _ := xml.Marshal(xlsx)
+	f.saveFileList(name, replaceWorkSheetsRelationshipsNameSpace(string(output)))
+}
+
 // readXMLSST read xmlSST simple function.
 // readXMLSST read xmlSST simple function.
 func readXMLSST(f *File) (xlsxSST, error) {
 func readXMLSST(f *File) (xlsxSST, error) {
 	shardStrings := xlsxSST{}
 	shardStrings := xlsxSST{}