You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: valueconv.go
    path of file: ./repos/tabtoy/v2/filter
    
    the code of the file until where you have to start completion: package filter

import (
	"strconv"

	"github.com/davyxu/tabtoy/v2/i18n"
	"github.com/davyxu/tabtoy/v2/model"
)

// 从单元格原始数据到最终输出的数值, 检查并转换, 处理默认值及根据meta转换情况
func ConvertValue(fd *model.FieldDescriptor, value string, fileD *model.FileDescriptor, node *model.Node) (ret string, ok bool) {

	// 空格, 且有默认值时, 使用默认
    
func fillStructDefaultValue(structD *model.Descriptor, fileD *model.FileDescriptor, node *model.Node) bool {

	for _, fd := range structD.Fields {

		// 没默认值不输出, 建议忽略的字段除外, 先导出node, 再在printer中忽略
		if fd.Meta.GetString("Default") == "" && node.SugguestIgnore {
			continue
		}

		fieldNode := node.AddKey(fd)

		// 结构体的值没填, 且没默认值, 建议忽略
		if fd.Meta.GetString("Default") == "" && node.Value == "" {
			fieldNode.SugguestIgnore = true
		}

		_, ok := ConvertValue(fd, "", fileD, fieldNode)
		if !ok {
			return false
		}
	}

	return true

}