code: func (styles *xlsxStyleSheet) newNumFmt(formatCode string) xlsxNumFmt {
  	if compareFormatString(formatCode, "general") {
  		return xlsxNumFmt{NumFmtId: 0, FormatCode: "general"}
  	}
  	// built in NumFmts in xmlStyle.go, traverse from the const.
  	numFmtId, ok := builtInNumFmtInv[formatCode]
  	if ok {
  		return xlsxNumFmt{NumFmtId: numFmtId, FormatCode: formatCode}
  	}
  
  	// find the exist xlsxNumFmt
  	for _, numFmt := range styles.NumFmts.NumFmt {
  		if formatCode == numFmt.FormatCode {
  			return numFmt
  		}
  	}
  
  	// The user define NumFmtId. The one less than 164 in built in.
  	numFmtId = builtinNumFmtsCount + 1
  	styles.Lock()
  	defer styles.Unlock()
  	for {
  		// get a unused NumFmtId
  		if _, ok = styles.numFmtRefTable[numFmtId]; ok {
  			numFmtId++
  		} else {
  			styles.addNumFmt(xlsxNumFmt{NumFmtId: numFmtId, FormatCode: formatCode})
  			break
  		}
  	}
  	return xlsxNumFmt{NumFmtId: numFmtId, FormatCode: formatCode}
  }
docs: // newNumFmt generate a xlsxNumFmt according the format code. When the FormatCode is built in, it will return a xlsxNumFmt with the NumFmtId defined in ECMA document, otherwise it will generate a new NumFmtId greater than 164.