gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/sheets/v3/model.go (about)

     1  // Package sheets code generated by oapi sdk gen
     2  /*
     3   * MIT License
     4   *
     5   * Copyright (c) 2022 Lark Technologies Pte. Ltd.
     6   *
     7   * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
     8   *
     9   * The above copyright notice and this permission notice, shall be included in all copies or substantial portions of the Software.
    10   *
    11   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    12   */
    13  
    14  package larksheets
    15  
    16  import (
    17  	"fmt"
    18  
    19  	"gitee.com/larksuite/oapi-sdk-go/v3/core"
    20  )
    21  
    22  type AddSheet struct {
    23  	Title *string `json:"title,omitempty"` // 工作表标题
    24  	Index *int    `json:"index,omitempty"` // 工作表位置
    25  }
    26  
    27  type AddSheetBuilder struct {
    28  	title     string // 工作表标题
    29  	titleFlag bool
    30  	index     int // 工作表位置
    31  	indexFlag bool
    32  }
    33  
    34  func NewAddSheetBuilder() *AddSheetBuilder {
    35  	builder := &AddSheetBuilder{}
    36  	return builder
    37  }
    38  
    39  // 工作表标题
    40  //
    41  // 示例值:abc
    42  func (builder *AddSheetBuilder) Title(title string) *AddSheetBuilder {
    43  	builder.title = title
    44  	builder.titleFlag = true
    45  	return builder
    46  }
    47  
    48  // 工作表位置
    49  //
    50  // 示例值:0
    51  func (builder *AddSheetBuilder) Index(index int) *AddSheetBuilder {
    52  	builder.index = index
    53  	builder.indexFlag = true
    54  	return builder
    55  }
    56  
    57  func (builder *AddSheetBuilder) Build() *AddSheet {
    58  	req := &AddSheet{}
    59  	if builder.titleFlag {
    60  		req.Title = &builder.title
    61  
    62  	}
    63  	if builder.indexFlag {
    64  		req.Index = &builder.index
    65  
    66  	}
    67  	return req
    68  }
    69  
    70  type AppendDimension struct {
    71  	MajorDimension    *string `json:"major_dimension,omitempty"`     // 操作行还是列,取值:ROWS、COLUMNS
    72  	Length            *int    `json:"length,omitempty"`              // 数量
    73  	InheritFromBefore *bool   `json:"inherit_from_before,omitempty"` // 是否继承上一行/列的样式
    74  }
    75  
    76  type AppendDimensionBuilder struct {
    77  	majorDimension        string // 操作行还是列,取值:ROWS、COLUMNS
    78  	majorDimensionFlag    bool
    79  	length                int // 数量
    80  	lengthFlag            bool
    81  	inheritFromBefore     bool // 是否继承上一行/列的样式
    82  	inheritFromBeforeFlag bool
    83  }
    84  
    85  func NewAppendDimensionBuilder() *AppendDimensionBuilder {
    86  	builder := &AppendDimensionBuilder{}
    87  	return builder
    88  }
    89  
    90  // 操作行还是列,取值:ROWS、COLUMNS
    91  //
    92  // 示例值:ROWS
    93  func (builder *AppendDimensionBuilder) MajorDimension(majorDimension string) *AppendDimensionBuilder {
    94  	builder.majorDimension = majorDimension
    95  	builder.majorDimensionFlag = true
    96  	return builder
    97  }
    98  
    99  // 数量
   100  //
   101  // 示例值:10
   102  func (builder *AppendDimensionBuilder) Length(length int) *AppendDimensionBuilder {
   103  	builder.length = length
   104  	builder.lengthFlag = true
   105  	return builder
   106  }
   107  
   108  // 是否继承上一行/列的样式
   109  //
   110  // 示例值:false
   111  func (builder *AppendDimensionBuilder) InheritFromBefore(inheritFromBefore bool) *AppendDimensionBuilder {
   112  	builder.inheritFromBefore = inheritFromBefore
   113  	builder.inheritFromBeforeFlag = true
   114  	return builder
   115  }
   116  
   117  func (builder *AppendDimensionBuilder) Build() *AppendDimension {
   118  	req := &AppendDimension{}
   119  	if builder.majorDimensionFlag {
   120  		req.MajorDimension = &builder.majorDimension
   121  
   122  	}
   123  	if builder.lengthFlag {
   124  		req.Length = &builder.length
   125  
   126  	}
   127  	if builder.inheritFromBeforeFlag {
   128  		req.InheritFromBefore = &builder.inheritFromBefore
   129  
   130  	}
   131  	return req
   132  }
   133  
   134  type BitableProperties struct {
   135  	BitableToken *string `json:"bitable_token,omitempty"` // 多维表格token
   136  	TableId      *string `json:"table_id,omitempty"`      // 数据表id
   137  }
   138  
   139  type BitablePropertiesBuilder struct {
   140  	bitableToken     string // 多维表格token
   141  	bitableTokenFlag bool
   142  	tableId          string // 数据表id
   143  	tableIdFlag      bool
   144  }
   145  
   146  func NewBitablePropertiesBuilder() *BitablePropertiesBuilder {
   147  	builder := &BitablePropertiesBuilder{}
   148  	return builder
   149  }
   150  
   151  // 多维表格token
   152  //
   153  // 示例值:basxxxxxxxxxxxxxxxx
   154  func (builder *BitablePropertiesBuilder) BitableToken(bitableToken string) *BitablePropertiesBuilder {
   155  	builder.bitableToken = bitableToken
   156  	builder.bitableTokenFlag = true
   157  	return builder
   158  }
   159  
   160  // 数据表id
   161  //
   162  // 示例值:tblxxxxxxxxxx
   163  func (builder *BitablePropertiesBuilder) TableId(tableId string) *BitablePropertiesBuilder {
   164  	builder.tableId = tableId
   165  	builder.tableIdFlag = true
   166  	return builder
   167  }
   168  
   169  func (builder *BitablePropertiesBuilder) Build() *BitableProperties {
   170  	req := &BitableProperties{}
   171  	if builder.bitableTokenFlag {
   172  		req.BitableToken = &builder.bitableToken
   173  
   174  	}
   175  	if builder.tableIdFlag {
   176  		req.TableId = &builder.tableId
   177  
   178  	}
   179  	return req
   180  }
   181  
   182  type CellValue struct {
   183  	Type            *string          `json:"type,omitempty"`             // 元素类型
   184  	Text            *Text            `json:"text,omitempty"`             //
   185  	MentionUser     *MentionUser     `json:"mention_user,omitempty"`     //
   186  	MentionDocument *MentionDocument `json:"mention_document,omitempty"` //
   187  	Value           *ValueElement    `json:"value,omitempty"`            //
   188  	DateTime        *DateTime        `json:"date_time,omitempty"`        //
   189  	File            *File            `json:"file,omitempty"`             //
   190  	Image           *Image           `json:"image,omitempty"`            //
   191  	Link            *Link            `json:"link,omitempty"`             //
   192  	Reminder        *Reminder        `json:"reminder,omitempty"`         //
   193  	Formula         *Formula         `json:"formula,omitempty"`          //
   194  }
   195  
   196  type CellValueBuilder struct {
   197  	type_               string // 元素类型
   198  	typeFlag            bool
   199  	text                *Text //
   200  	textFlag            bool
   201  	mentionUser         *MentionUser //
   202  	mentionUserFlag     bool
   203  	mentionDocument     *MentionDocument //
   204  	mentionDocumentFlag bool
   205  	value               *ValueElement //
   206  	valueFlag           bool
   207  	dateTime            *DateTime //
   208  	dateTimeFlag        bool
   209  	file                *File //
   210  	fileFlag            bool
   211  	image               *Image //
   212  	imageFlag           bool
   213  	link                *Link //
   214  	linkFlag            bool
   215  	reminder            *Reminder //
   216  	reminderFlag        bool
   217  	formula             *Formula //
   218  	formulaFlag         bool
   219  }
   220  
   221  func NewCellValueBuilder() *CellValueBuilder {
   222  	builder := &CellValueBuilder{}
   223  	return builder
   224  }
   225  
   226  // 元素类型
   227  //
   228  // 示例值:text
   229  func (builder *CellValueBuilder) Type(type_ string) *CellValueBuilder {
   230  	builder.type_ = type_
   231  	builder.typeFlag = true
   232  	return builder
   233  }
   234  
   235  //
   236  //
   237  // 示例值:
   238  func (builder *CellValueBuilder) Text(text *Text) *CellValueBuilder {
   239  	builder.text = text
   240  	builder.textFlag = true
   241  	return builder
   242  }
   243  
   244  //
   245  //
   246  // 示例值:
   247  func (builder *CellValueBuilder) MentionUser(mentionUser *MentionUser) *CellValueBuilder {
   248  	builder.mentionUser = mentionUser
   249  	builder.mentionUserFlag = true
   250  	return builder
   251  }
   252  
   253  //
   254  //
   255  // 示例值:
   256  func (builder *CellValueBuilder) MentionDocument(mentionDocument *MentionDocument) *CellValueBuilder {
   257  	builder.mentionDocument = mentionDocument
   258  	builder.mentionDocumentFlag = true
   259  	return builder
   260  }
   261  
   262  //
   263  //
   264  // 示例值:
   265  func (builder *CellValueBuilder) Value(value *ValueElement) *CellValueBuilder {
   266  	builder.value = value
   267  	builder.valueFlag = true
   268  	return builder
   269  }
   270  
   271  //
   272  //
   273  // 示例值:
   274  func (builder *CellValueBuilder) DateTime(dateTime *DateTime) *CellValueBuilder {
   275  	builder.dateTime = dateTime
   276  	builder.dateTimeFlag = true
   277  	return builder
   278  }
   279  
   280  //
   281  //
   282  // 示例值:
   283  func (builder *CellValueBuilder) File(file *File) *CellValueBuilder {
   284  	builder.file = file
   285  	builder.fileFlag = true
   286  	return builder
   287  }
   288  
   289  //
   290  //
   291  // 示例值:
   292  func (builder *CellValueBuilder) Image(image *Image) *CellValueBuilder {
   293  	builder.image = image
   294  	builder.imageFlag = true
   295  	return builder
   296  }
   297  
   298  //
   299  //
   300  // 示例值:
   301  func (builder *CellValueBuilder) Link(link *Link) *CellValueBuilder {
   302  	builder.link = link
   303  	builder.linkFlag = true
   304  	return builder
   305  }
   306  
   307  //
   308  //
   309  // 示例值:
   310  func (builder *CellValueBuilder) Reminder(reminder *Reminder) *CellValueBuilder {
   311  	builder.reminder = reminder
   312  	builder.reminderFlag = true
   313  	return builder
   314  }
   315  
   316  //
   317  //
   318  // 示例值:
   319  func (builder *CellValueBuilder) Formula(formula *Formula) *CellValueBuilder {
   320  	builder.formula = formula
   321  	builder.formulaFlag = true
   322  	return builder
   323  }
   324  
   325  func (builder *CellValueBuilder) Build() *CellValue {
   326  	req := &CellValue{}
   327  	if builder.typeFlag {
   328  		req.Type = &builder.type_
   329  
   330  	}
   331  	if builder.textFlag {
   332  		req.Text = builder.text
   333  	}
   334  	if builder.mentionUserFlag {
   335  		req.MentionUser = builder.mentionUser
   336  	}
   337  	if builder.mentionDocumentFlag {
   338  		req.MentionDocument = builder.mentionDocument
   339  	}
   340  	if builder.valueFlag {
   341  		req.Value = builder.value
   342  	}
   343  	if builder.dateTimeFlag {
   344  		req.DateTime = builder.dateTime
   345  	}
   346  	if builder.fileFlag {
   347  		req.File = builder.file
   348  	}
   349  	if builder.imageFlag {
   350  		req.Image = builder.image
   351  	}
   352  	if builder.linkFlag {
   353  		req.Link = builder.link
   354  	}
   355  	if builder.reminderFlag {
   356  		req.Reminder = builder.reminder
   357  	}
   358  	if builder.formulaFlag {
   359  		req.Formula = builder.formula
   360  	}
   361  	return req
   362  }
   363  
   364  type Condition struct {
   365  	FilterType  *string  `json:"filter_type,omitempty"`  // 筛选类型
   366  	CompareType *string  `json:"compare_type,omitempty"` // 比较类型
   367  	Expected    []string `json:"expected,omitempty"`     // 筛选参数
   368  }
   369  
   370  type ConditionBuilder struct {
   371  	filterType      string // 筛选类型
   372  	filterTypeFlag  bool
   373  	compareType     string // 比较类型
   374  	compareTypeFlag bool
   375  	expected        []string // 筛选参数
   376  	expectedFlag    bool
   377  }
   378  
   379  func NewConditionBuilder() *ConditionBuilder {
   380  	builder := &ConditionBuilder{}
   381  	return builder
   382  }
   383  
   384  // 筛选类型
   385  //
   386  // 示例值:number
   387  func (builder *ConditionBuilder) FilterType(filterType string) *ConditionBuilder {
   388  	builder.filterType = filterType
   389  	builder.filterTypeFlag = true
   390  	return builder
   391  }
   392  
   393  // 比较类型
   394  //
   395  // 示例值:less
   396  func (builder *ConditionBuilder) CompareType(compareType string) *ConditionBuilder {
   397  	builder.compareType = compareType
   398  	builder.compareTypeFlag = true
   399  	return builder
   400  }
   401  
   402  // 筛选参数
   403  //
   404  // 示例值:6
   405  func (builder *ConditionBuilder) Expected(expected []string) *ConditionBuilder {
   406  	builder.expected = expected
   407  	builder.expectedFlag = true
   408  	return builder
   409  }
   410  
   411  func (builder *ConditionBuilder) Build() *Condition {
   412  	req := &Condition{}
   413  	if builder.filterTypeFlag {
   414  		req.FilterType = &builder.filterType
   415  
   416  	}
   417  	if builder.compareTypeFlag {
   418  		req.CompareType = &builder.compareType
   419  
   420  	}
   421  	if builder.expectedFlag {
   422  		req.Expected = builder.expected
   423  	}
   424  	return req
   425  }
   426  
   427  type CreateSheetFilter struct {
   428  	Range     *string    `json:"range,omitempty"`     // 筛选应用范围
   429  	Col       *string    `json:"col,omitempty"`       // 设置筛选条件的列
   430  	Condition *Condition `json:"condition,omitempty"` // 筛选的条件
   431  }
   432  
   433  type CreateSheetFilterBuilder struct {
   434  	range_        string // 筛选应用范围
   435  	rangeFlag     bool
   436  	col           string // 设置筛选条件的列
   437  	colFlag       bool
   438  	condition     *Condition // 筛选的条件
   439  	conditionFlag bool
   440  }
   441  
   442  func NewCreateSheetFilterBuilder() *CreateSheetFilterBuilder {
   443  	builder := &CreateSheetFilterBuilder{}
   444  	return builder
   445  }
   446  
   447  // 筛选应用范围
   448  //
   449  // 示例值:xxxxxx!C1:H14
   450  func (builder *CreateSheetFilterBuilder) Range(range_ string) *CreateSheetFilterBuilder {
   451  	builder.range_ = range_
   452  	builder.rangeFlag = true
   453  	return builder
   454  }
   455  
   456  // 设置筛选条件的列
   457  //
   458  // 示例值:E
   459  func (builder *CreateSheetFilterBuilder) Col(col string) *CreateSheetFilterBuilder {
   460  	builder.col = col
   461  	builder.colFlag = true
   462  	return builder
   463  }
   464  
   465  // 筛选的条件
   466  //
   467  // 示例值:
   468  func (builder *CreateSheetFilterBuilder) Condition(condition *Condition) *CreateSheetFilterBuilder {
   469  	builder.condition = condition
   470  	builder.conditionFlag = true
   471  	return builder
   472  }
   473  
   474  func (builder *CreateSheetFilterBuilder) Build() *CreateSheetFilter {
   475  	req := &CreateSheetFilter{}
   476  	if builder.rangeFlag {
   477  		req.Range = &builder.range_
   478  
   479  	}
   480  	if builder.colFlag {
   481  		req.Col = &builder.col
   482  
   483  	}
   484  	if builder.conditionFlag {
   485  		req.Condition = builder.condition
   486  	}
   487  	return req
   488  }
   489  
   490  type DateTime struct {
   491  	DateTime *string `json:"date_time,omitempty"` // 时间日期
   492  }
   493  
   494  type DateTimeBuilder struct {
   495  	dateTime     string // 时间日期
   496  	dateTimeFlag bool
   497  }
   498  
   499  func NewDateTimeBuilder() *DateTimeBuilder {
   500  	builder := &DateTimeBuilder{}
   501  	return builder
   502  }
   503  
   504  // 时间日期
   505  //
   506  // 示例值:2022/02/22
   507  func (builder *DateTimeBuilder) DateTime(dateTime string) *DateTimeBuilder {
   508  	builder.dateTime = dateTime
   509  	builder.dateTimeFlag = true
   510  	return builder
   511  }
   512  
   513  func (builder *DateTimeBuilder) Build() *DateTime {
   514  	req := &DateTime{}
   515  	if builder.dateTimeFlag {
   516  		req.DateTime = &builder.dateTime
   517  
   518  	}
   519  	return req
   520  }
   521  
   522  type Dimension struct {
   523  	MajorDimension *string `json:"major_dimension,omitempty"` // 操作行还是列,取值:ROWS、COLUMNS
   524  	StartIndex     *int    `json:"start_index,omitempty"`     // 起始行或者列号
   525  	EndIndex       *int    `json:"end_index,omitempty"`       // 结束行或者列号
   526  }
   527  
   528  type DimensionBuilder struct {
   529  	majorDimension     string // 操作行还是列,取值:ROWS、COLUMNS
   530  	majorDimensionFlag bool
   531  	startIndex         int // 起始行或者列号
   532  	startIndexFlag     bool
   533  	endIndex           int // 结束行或者列号
   534  	endIndexFlag       bool
   535  }
   536  
   537  func NewDimensionBuilder() *DimensionBuilder {
   538  	builder := &DimensionBuilder{}
   539  	return builder
   540  }
   541  
   542  // 操作行还是列,取值:ROWS、COLUMNS
   543  //
   544  // 示例值:ROWS
   545  func (builder *DimensionBuilder) MajorDimension(majorDimension string) *DimensionBuilder {
   546  	builder.majorDimension = majorDimension
   547  	builder.majorDimensionFlag = true
   548  	return builder
   549  }
   550  
   551  // 起始行或者列号
   552  //
   553  // 示例值:0
   554  func (builder *DimensionBuilder) StartIndex(startIndex int) *DimensionBuilder {
   555  	builder.startIndex = startIndex
   556  	builder.startIndexFlag = true
   557  	return builder
   558  }
   559  
   560  // 结束行或者列号
   561  //
   562  // 示例值:1
   563  func (builder *DimensionBuilder) EndIndex(endIndex int) *DimensionBuilder {
   564  	builder.endIndex = endIndex
   565  	builder.endIndexFlag = true
   566  	return builder
   567  }
   568  
   569  func (builder *DimensionBuilder) Build() *Dimension {
   570  	req := &Dimension{}
   571  	if builder.majorDimensionFlag {
   572  		req.MajorDimension = &builder.majorDimension
   573  
   574  	}
   575  	if builder.startIndexFlag {
   576  		req.StartIndex = &builder.startIndex
   577  
   578  	}
   579  	if builder.endIndexFlag {
   580  		req.EndIndex = &builder.endIndex
   581  
   582  	}
   583  	return req
   584  }
   585  
   586  type DimensionProperties struct {
   587  	Hidden    *bool `json:"hidden,omitempty"`     // 是否隐藏
   588  	PixelSize *int  `json:"pixel_size,omitempty"` // 行/列像素大小
   589  }
   590  
   591  type DimensionPropertiesBuilder struct {
   592  	hidden        bool // 是否隐藏
   593  	hiddenFlag    bool
   594  	pixelSize     int // 行/列像素大小
   595  	pixelSizeFlag bool
   596  }
   597  
   598  func NewDimensionPropertiesBuilder() *DimensionPropertiesBuilder {
   599  	builder := &DimensionPropertiesBuilder{}
   600  	return builder
   601  }
   602  
   603  // 是否隐藏
   604  //
   605  // 示例值:false
   606  func (builder *DimensionPropertiesBuilder) Hidden(hidden bool) *DimensionPropertiesBuilder {
   607  	builder.hidden = hidden
   608  	builder.hiddenFlag = true
   609  	return builder
   610  }
   611  
   612  // 行/列像素大小
   613  //
   614  // 示例值:100
   615  func (builder *DimensionPropertiesBuilder) PixelSize(pixelSize int) *DimensionPropertiesBuilder {
   616  	builder.pixelSize = pixelSize
   617  	builder.pixelSizeFlag = true
   618  	return builder
   619  }
   620  
   621  func (builder *DimensionPropertiesBuilder) Build() *DimensionProperties {
   622  	req := &DimensionProperties{}
   623  	if builder.hiddenFlag {
   624  		req.Hidden = &builder.hidden
   625  
   626  	}
   627  	if builder.pixelSizeFlag {
   628  		req.PixelSize = &builder.pixelSize
   629  
   630  	}
   631  	return req
   632  }
   633  
   634  type File struct {
   635  	FileToken    *string       `json:"file_token,omitempty"`    // 附件token
   636  	Name         *string       `json:"name,omitempty"`          // 附件名称
   637  	SegmentStyle *SegmentStyle `json:"segment_style,omitempty"` //
   638  }
   639  
   640  type FileBuilder struct {
   641  	fileToken        string // 附件token
   642  	fileTokenFlag    bool
   643  	name             string // 附件名称
   644  	nameFlag         bool
   645  	segmentStyle     *SegmentStyle //
   646  	segmentStyleFlag bool
   647  }
   648  
   649  func NewFileBuilder() *FileBuilder {
   650  	builder := &FileBuilder{}
   651  	return builder
   652  }
   653  
   654  // 附件token
   655  //
   656  // 示例值:boxxxxxxx
   657  func (builder *FileBuilder) FileToken(fileToken string) *FileBuilder {
   658  	builder.fileToken = fileToken
   659  	builder.fileTokenFlag = true
   660  	return builder
   661  }
   662  
   663  // 附件名称
   664  //
   665  // 示例值:a.png
   666  func (builder *FileBuilder) Name(name string) *FileBuilder {
   667  	builder.name = name
   668  	builder.nameFlag = true
   669  	return builder
   670  }
   671  
   672  //
   673  //
   674  // 示例值:
   675  func (builder *FileBuilder) SegmentStyle(segmentStyle *SegmentStyle) *FileBuilder {
   676  	builder.segmentStyle = segmentStyle
   677  	builder.segmentStyleFlag = true
   678  	return builder
   679  }
   680  
   681  func (builder *FileBuilder) Build() *File {
   682  	req := &File{}
   683  	if builder.fileTokenFlag {
   684  		req.FileToken = &builder.fileToken
   685  
   686  	}
   687  	if builder.nameFlag {
   688  		req.Name = &builder.name
   689  
   690  	}
   691  	if builder.segmentStyleFlag {
   692  		req.SegmentStyle = builder.segmentStyle
   693  	}
   694  	return req
   695  }
   696  
   697  type FilterInfo struct {
   698  	Col        *string      `json:"col,omitempty"`        // 设置了筛选条件的列
   699  	Conditions []*Condition `json:"conditions,omitempty"` // 筛选条件
   700  }
   701  
   702  type FilterInfoBuilder struct {
   703  	col            string // 设置了筛选条件的列
   704  	colFlag        bool
   705  	conditions     []*Condition // 筛选条件
   706  	conditionsFlag bool
   707  }
   708  
   709  func NewFilterInfoBuilder() *FilterInfoBuilder {
   710  	builder := &FilterInfoBuilder{}
   711  	return builder
   712  }
   713  
   714  // 设置了筛选条件的列
   715  //
   716  // 示例值:E
   717  func (builder *FilterInfoBuilder) Col(col string) *FilterInfoBuilder {
   718  	builder.col = col
   719  	builder.colFlag = true
   720  	return builder
   721  }
   722  
   723  // 筛选条件
   724  //
   725  // 示例值:
   726  func (builder *FilterInfoBuilder) Conditions(conditions []*Condition) *FilterInfoBuilder {
   727  	builder.conditions = conditions
   728  	builder.conditionsFlag = true
   729  	return builder
   730  }
   731  
   732  func (builder *FilterInfoBuilder) Build() *FilterInfo {
   733  	req := &FilterInfo{}
   734  	if builder.colFlag {
   735  		req.Col = &builder.col
   736  
   737  	}
   738  	if builder.conditionsFlag {
   739  		req.Conditions = builder.conditions
   740  	}
   741  	return req
   742  }
   743  
   744  type FilterView struct {
   745  	FilterViewId   *string `json:"filter_view_id,omitempty"`   // 筛选视图 id
   746  	FilterViewName *string `json:"filter_view_name,omitempty"` // 筛选视图名字
   747  	Range          *string `json:"range,omitempty"`            // 筛选视图的筛选范围
   748  }
   749  
   750  type FilterViewBuilder struct {
   751  	filterViewId       string // 筛选视图 id
   752  	filterViewIdFlag   bool
   753  	filterViewName     string // 筛选视图名字
   754  	filterViewNameFlag bool
   755  	range_             string // 筛选视图的筛选范围
   756  	rangeFlag          bool
   757  }
   758  
   759  func NewFilterViewBuilder() *FilterViewBuilder {
   760  	builder := &FilterViewBuilder{}
   761  	return builder
   762  }
   763  
   764  // 筛选视图 id
   765  //
   766  // 示例值:pH9hbVcCXA
   767  func (builder *FilterViewBuilder) FilterViewId(filterViewId string) *FilterViewBuilder {
   768  	builder.filterViewId = filterViewId
   769  	builder.filterViewIdFlag = true
   770  	return builder
   771  }
   772  
   773  // 筛选视图名字
   774  //
   775  // 示例值:筛选视图 1
   776  func (builder *FilterViewBuilder) FilterViewName(filterViewName string) *FilterViewBuilder {
   777  	builder.filterViewName = filterViewName
   778  	builder.filterViewNameFlag = true
   779  	return builder
   780  }
   781  
   782  // 筛选视图的筛选范围
   783  //
   784  // 示例值:0b**12!C1:H14
   785  func (builder *FilterViewBuilder) Range(range_ string) *FilterViewBuilder {
   786  	builder.range_ = range_
   787  	builder.rangeFlag = true
   788  	return builder
   789  }
   790  
   791  func (builder *FilterViewBuilder) Build() *FilterView {
   792  	req := &FilterView{}
   793  	if builder.filterViewIdFlag {
   794  		req.FilterViewId = &builder.filterViewId
   795  
   796  	}
   797  	if builder.filterViewNameFlag {
   798  		req.FilterViewName = &builder.filterViewName
   799  
   800  	}
   801  	if builder.rangeFlag {
   802  		req.Range = &builder.range_
   803  
   804  	}
   805  	return req
   806  }
   807  
   808  type FilterViewCondition struct {
   809  	ConditionId *string  `json:"condition_id,omitempty"` // 设置筛选条件的列,使用字母号
   810  	FilterType  *string  `json:"filter_type,omitempty"`  // 筛选类型
   811  	CompareType *string  `json:"compare_type,omitempty"` // 比较类型
   812  	Expected    []string `json:"expected,omitempty"`     // 筛选参数
   813  }
   814  
   815  type FilterViewConditionBuilder struct {
   816  	conditionId     string // 设置筛选条件的列,使用字母号
   817  	conditionIdFlag bool
   818  	filterType      string // 筛选类型
   819  	filterTypeFlag  bool
   820  	compareType     string // 比较类型
   821  	compareTypeFlag bool
   822  	expected        []string // 筛选参数
   823  	expectedFlag    bool
   824  }
   825  
   826  func NewFilterViewConditionBuilder() *FilterViewConditionBuilder {
   827  	builder := &FilterViewConditionBuilder{}
   828  	return builder
   829  }
   830  
   831  // 设置筛选条件的列,使用字母号
   832  //
   833  // 示例值:E
   834  func (builder *FilterViewConditionBuilder) ConditionId(conditionId string) *FilterViewConditionBuilder {
   835  	builder.conditionId = conditionId
   836  	builder.conditionIdFlag = true
   837  	return builder
   838  }
   839  
   840  // 筛选类型
   841  //
   842  // 示例值:number
   843  func (builder *FilterViewConditionBuilder) FilterType(filterType string) *FilterViewConditionBuilder {
   844  	builder.filterType = filterType
   845  	builder.filterTypeFlag = true
   846  	return builder
   847  }
   848  
   849  // 比较类型
   850  //
   851  // 示例值:less
   852  func (builder *FilterViewConditionBuilder) CompareType(compareType string) *FilterViewConditionBuilder {
   853  	builder.compareType = compareType
   854  	builder.compareTypeFlag = true
   855  	return builder
   856  }
   857  
   858  // 筛选参数
   859  //
   860  // 示例值:6
   861  func (builder *FilterViewConditionBuilder) Expected(expected []string) *FilterViewConditionBuilder {
   862  	builder.expected = expected
   863  	builder.expectedFlag = true
   864  	return builder
   865  }
   866  
   867  func (builder *FilterViewConditionBuilder) Build() *FilterViewCondition {
   868  	req := &FilterViewCondition{}
   869  	if builder.conditionIdFlag {
   870  		req.ConditionId = &builder.conditionId
   871  
   872  	}
   873  	if builder.filterTypeFlag {
   874  		req.FilterType = &builder.filterType
   875  
   876  	}
   877  	if builder.compareTypeFlag {
   878  		req.CompareType = &builder.compareType
   879  
   880  	}
   881  	if builder.expectedFlag {
   882  		req.Expected = builder.expected
   883  	}
   884  	return req
   885  }
   886  
   887  type Find struct {
   888  	FindCondition *FindCondition `json:"find_condition,omitempty"` // 查找条件
   889  	Find          *string        `json:"find,omitempty"`           // 查找的字符串
   890  }
   891  
   892  type FindBuilder struct {
   893  	findCondition     *FindCondition // 查找条件
   894  	findConditionFlag bool
   895  	find              string // 查找的字符串
   896  	findFlag          bool
   897  }
   898  
   899  func NewFindBuilder() *FindBuilder {
   900  	builder := &FindBuilder{}
   901  	return builder
   902  }
   903  
   904  // 查找条件
   905  //
   906  // 示例值:
   907  func (builder *FindBuilder) FindCondition(findCondition *FindCondition) *FindBuilder {
   908  	builder.findCondition = findCondition
   909  	builder.findConditionFlag = true
   910  	return builder
   911  }
   912  
   913  // 查找的字符串
   914  //
   915  // 示例值:hello
   916  func (builder *FindBuilder) Find(find string) *FindBuilder {
   917  	builder.find = find
   918  	builder.findFlag = true
   919  	return builder
   920  }
   921  
   922  func (builder *FindBuilder) Build() *Find {
   923  	req := &Find{}
   924  	if builder.findConditionFlag {
   925  		req.FindCondition = builder.findCondition
   926  	}
   927  	if builder.findFlag {
   928  		req.Find = &builder.find
   929  
   930  	}
   931  	return req
   932  }
   933  
   934  type FindCondition struct {
   935  	Range           *string `json:"range,omitempty"`             // 查找范围
   936  	MatchCase       *bool   `json:"match_case,omitempty"`        // 是否忽略大小写
   937  	MatchEntireCell *bool   `json:"match_entire_cell,omitempty"` // 是否匹配整个单元格
   938  	SearchByRegex   *bool   `json:"search_by_regex,omitempty"`   // 是否为正则匹配
   939  	IncludeFormulas *bool   `json:"include_formulas,omitempty"`  // 是否搜索公式内容
   940  }
   941  
   942  type FindConditionBuilder struct {
   943  	range_              string // 查找范围
   944  	rangeFlag           bool
   945  	matchCase           bool // 是否忽略大小写
   946  	matchCaseFlag       bool
   947  	matchEntireCell     bool // 是否匹配整个单元格
   948  	matchEntireCellFlag bool
   949  	searchByRegex       bool // 是否为正则匹配
   950  	searchByRegexFlag   bool
   951  	includeFormulas     bool // 是否搜索公式内容
   952  	includeFormulasFlag bool
   953  }
   954  
   955  func NewFindConditionBuilder() *FindConditionBuilder {
   956  	builder := &FindConditionBuilder{}
   957  	return builder
   958  }
   959  
   960  // 查找范围
   961  //
   962  // 示例值:0b**12!A1:H10
   963  func (builder *FindConditionBuilder) Range(range_ string) *FindConditionBuilder {
   964  	builder.range_ = range_
   965  	builder.rangeFlag = true
   966  	return builder
   967  }
   968  
   969  // 是否忽略大小写
   970  //
   971  // 示例值:true
   972  func (builder *FindConditionBuilder) MatchCase(matchCase bool) *FindConditionBuilder {
   973  	builder.matchCase = matchCase
   974  	builder.matchCaseFlag = true
   975  	return builder
   976  }
   977  
   978  // 是否匹配整个单元格
   979  //
   980  // 示例值:false
   981  func (builder *FindConditionBuilder) MatchEntireCell(matchEntireCell bool) *FindConditionBuilder {
   982  	builder.matchEntireCell = matchEntireCell
   983  	builder.matchEntireCellFlag = true
   984  	return builder
   985  }
   986  
   987  // 是否为正则匹配
   988  //
   989  // 示例值:false
   990  func (builder *FindConditionBuilder) SearchByRegex(searchByRegex bool) *FindConditionBuilder {
   991  	builder.searchByRegex = searchByRegex
   992  	builder.searchByRegexFlag = true
   993  	return builder
   994  }
   995  
   996  // 是否搜索公式内容
   997  //
   998  // 示例值:false
   999  func (builder *FindConditionBuilder) IncludeFormulas(includeFormulas bool) *FindConditionBuilder {
  1000  	builder.includeFormulas = includeFormulas
  1001  	builder.includeFormulasFlag = true
  1002  	return builder
  1003  }
  1004  
  1005  func (builder *FindConditionBuilder) Build() *FindCondition {
  1006  	req := &FindCondition{}
  1007  	if builder.rangeFlag {
  1008  		req.Range = &builder.range_
  1009  
  1010  	}
  1011  	if builder.matchCaseFlag {
  1012  		req.MatchCase = &builder.matchCase
  1013  
  1014  	}
  1015  	if builder.matchEntireCellFlag {
  1016  		req.MatchEntireCell = &builder.matchEntireCell
  1017  
  1018  	}
  1019  	if builder.searchByRegexFlag {
  1020  		req.SearchByRegex = &builder.searchByRegex
  1021  
  1022  	}
  1023  	if builder.includeFormulasFlag {
  1024  		req.IncludeFormulas = &builder.includeFormulas
  1025  
  1026  	}
  1027  	return req
  1028  }
  1029  
  1030  type FindReplaceResult struct {
  1031  	MatchedCells        []string `json:"matched_cells,omitempty"`         // 符合查找条件的单元格数组,不包含公式,例如["A1", "A2"...]
  1032  	MatchedFormulaCells []string `json:"matched_formula_cells,omitempty"` // 符合查找条件的含有公式的单元格数组,例如["B3", "H7"...]
  1033  	RowsCount           *int     `json:"rows_count,omitempty"`            // 符合查找条件的总行数
  1034  }
  1035  
  1036  type FindReplaceResultBuilder struct {
  1037  	matchedCells            []string // 符合查找条件的单元格数组,不包含公式,例如["A1", "A2"...]
  1038  	matchedCellsFlag        bool
  1039  	matchedFormulaCells     []string // 符合查找条件的含有公式的单元格数组,例如["B3", "H7"...]
  1040  	matchedFormulaCellsFlag bool
  1041  	rowsCount               int // 符合查找条件的总行数
  1042  	rowsCountFlag           bool
  1043  }
  1044  
  1045  func NewFindReplaceResultBuilder() *FindReplaceResultBuilder {
  1046  	builder := &FindReplaceResultBuilder{}
  1047  	return builder
  1048  }
  1049  
  1050  // 符合查找条件的单元格数组,不包含公式,例如["A1", "A2"...]
  1051  //
  1052  // 示例值:
  1053  func (builder *FindReplaceResultBuilder) MatchedCells(matchedCells []string) *FindReplaceResultBuilder {
  1054  	builder.matchedCells = matchedCells
  1055  	builder.matchedCellsFlag = true
  1056  	return builder
  1057  }
  1058  
  1059  // 符合查找条件的含有公式的单元格数组,例如["B3", "H7"...]
  1060  //
  1061  // 示例值:
  1062  func (builder *FindReplaceResultBuilder) MatchedFormulaCells(matchedFormulaCells []string) *FindReplaceResultBuilder {
  1063  	builder.matchedFormulaCells = matchedFormulaCells
  1064  	builder.matchedFormulaCellsFlag = true
  1065  	return builder
  1066  }
  1067  
  1068  // 符合查找条件的总行数
  1069  //
  1070  // 示例值:2
  1071  func (builder *FindReplaceResultBuilder) RowsCount(rowsCount int) *FindReplaceResultBuilder {
  1072  	builder.rowsCount = rowsCount
  1073  	builder.rowsCountFlag = true
  1074  	return builder
  1075  }
  1076  
  1077  func (builder *FindReplaceResultBuilder) Build() *FindReplaceResult {
  1078  	req := &FindReplaceResult{}
  1079  	if builder.matchedCellsFlag {
  1080  		req.MatchedCells = builder.matchedCells
  1081  	}
  1082  	if builder.matchedFormulaCellsFlag {
  1083  		req.MatchedFormulaCells = builder.matchedFormulaCells
  1084  	}
  1085  	if builder.rowsCountFlag {
  1086  		req.RowsCount = &builder.rowsCount
  1087  
  1088  	}
  1089  	return req
  1090  }
  1091  
  1092  type FloatImage struct {
  1093  	FloatImageId    *string  `json:"float_image_id,omitempty"`    // 浮动图片 id
  1094  	FloatImageToken *string  `json:"float_image_token,omitempty"` // 【更新时不用传,创建需要】浮动图片 token,需要先上传图片到表格获得此 token 之后再进行浮动图片的相关操作
  1095  	Range           *string  `json:"range,omitempty"`             // 浮动图片的左上角单元格定位,只支持一个单元格
  1096  	Width           *float64 `json:"width,omitempty"`             // 浮动图片的宽度,大于等于 20px
  1097  	Height          *float64 `json:"height,omitempty"`            // 浮动图片的高度,大于等于 20px
  1098  	OffsetX         *float64 `json:"offset_x,omitempty"`          // 浮动图片左上角所在位置相对于所在单元格左上角的横向偏移,大于等于0且小于所在单元格的宽度
  1099  	OffsetY         *float64 `json:"offset_y,omitempty"`          // 浮动图片左上角所在位置相对于所在单元格左上角的纵向偏移,大于等于0且小于所在单元格的高度
  1100  }
  1101  
  1102  type FloatImageBuilder struct {
  1103  	floatImageId        string // 浮动图片 id
  1104  	floatImageIdFlag    bool
  1105  	floatImageToken     string // 【更新时不用传,创建需要】浮动图片 token,需要先上传图片到表格获得此 token 之后再进行浮动图片的相关操作
  1106  	floatImageTokenFlag bool
  1107  	range_              string // 浮动图片的左上角单元格定位,只支持一个单元格
  1108  	rangeFlag           bool
  1109  	width               float64 // 浮动图片的宽度,大于等于 20px
  1110  	widthFlag           bool
  1111  	height              float64 // 浮动图片的高度,大于等于 20px
  1112  	heightFlag          bool
  1113  	offsetX             float64 // 浮动图片左上角所在位置相对于所在单元格左上角的横向偏移,大于等于0且小于所在单元格的宽度
  1114  	offsetXFlag         bool
  1115  	offsetY             float64 // 浮动图片左上角所在位置相对于所在单元格左上角的纵向偏移,大于等于0且小于所在单元格的高度
  1116  	offsetYFlag         bool
  1117  }
  1118  
  1119  func NewFloatImageBuilder() *FloatImageBuilder {
  1120  	builder := &FloatImageBuilder{}
  1121  	return builder
  1122  }
  1123  
  1124  // 浮动图片 id
  1125  //
  1126  // 示例值:ye06SS14ph
  1127  func (builder *FloatImageBuilder) FloatImageId(floatImageId string) *FloatImageBuilder {
  1128  	builder.floatImageId = floatImageId
  1129  	builder.floatImageIdFlag = true
  1130  	return builder
  1131  }
  1132  
  1133  // 【更新时不用传,创建需要】浮动图片 token,需要先上传图片到表格获得此 token 之后再进行浮动图片的相关操作
  1134  //
  1135  // 示例值:boxbcbQsaSqIXsxxxxx1HCPJFbh
  1136  func (builder *FloatImageBuilder) FloatImageToken(floatImageToken string) *FloatImageBuilder {
  1137  	builder.floatImageToken = floatImageToken
  1138  	builder.floatImageTokenFlag = true
  1139  	return builder
  1140  }
  1141  
  1142  // 浮动图片的左上角单元格定位,只支持一个单元格
  1143  //
  1144  // 示例值:0b**12!A1:A1
  1145  func (builder *FloatImageBuilder) Range(range_ string) *FloatImageBuilder {
  1146  	builder.range_ = range_
  1147  	builder.rangeFlag = true
  1148  	return builder
  1149  }
  1150  
  1151  // 浮动图片的宽度,大于等于 20px
  1152  //
  1153  // 示例值:100
  1154  func (builder *FloatImageBuilder) Width(width float64) *FloatImageBuilder {
  1155  	builder.width = width
  1156  	builder.widthFlag = true
  1157  	return builder
  1158  }
  1159  
  1160  // 浮动图片的高度,大于等于 20px
  1161  //
  1162  // 示例值:100
  1163  func (builder *FloatImageBuilder) Height(height float64) *FloatImageBuilder {
  1164  	builder.height = height
  1165  	builder.heightFlag = true
  1166  	return builder
  1167  }
  1168  
  1169  // 浮动图片左上角所在位置相对于所在单元格左上角的横向偏移,大于等于0且小于所在单元格的宽度
  1170  //
  1171  // 示例值:0
  1172  func (builder *FloatImageBuilder) OffsetX(offsetX float64) *FloatImageBuilder {
  1173  	builder.offsetX = offsetX
  1174  	builder.offsetXFlag = true
  1175  	return builder
  1176  }
  1177  
  1178  // 浮动图片左上角所在位置相对于所在单元格左上角的纵向偏移,大于等于0且小于所在单元格的高度
  1179  //
  1180  // 示例值:0
  1181  func (builder *FloatImageBuilder) OffsetY(offsetY float64) *FloatImageBuilder {
  1182  	builder.offsetY = offsetY
  1183  	builder.offsetYFlag = true
  1184  	return builder
  1185  }
  1186  
  1187  func (builder *FloatImageBuilder) Build() *FloatImage {
  1188  	req := &FloatImage{}
  1189  	if builder.floatImageIdFlag {
  1190  		req.FloatImageId = &builder.floatImageId
  1191  
  1192  	}
  1193  	if builder.floatImageTokenFlag {
  1194  		req.FloatImageToken = &builder.floatImageToken
  1195  
  1196  	}
  1197  	if builder.rangeFlag {
  1198  		req.Range = &builder.range_
  1199  
  1200  	}
  1201  	if builder.widthFlag {
  1202  		req.Width = &builder.width
  1203  
  1204  	}
  1205  	if builder.heightFlag {
  1206  		req.Height = &builder.height
  1207  
  1208  	}
  1209  	if builder.offsetXFlag {
  1210  		req.OffsetX = &builder.offsetX
  1211  
  1212  	}
  1213  	if builder.offsetYFlag {
  1214  		req.OffsetY = &builder.offsetY
  1215  
  1216  	}
  1217  	return req
  1218  }
  1219  
  1220  type Formula struct {
  1221  	Formula       *string `json:"formula,omitempty"`        // 公式
  1222  	FormulaValue  *string `json:"formula_value,omitempty"`  // 公式结果
  1223  	AffectedRange *string `json:"affected_range,omitempty"` // 公式影响的范围
  1224  }
  1225  
  1226  type FormulaBuilder struct {
  1227  	formula           string // 公式
  1228  	formulaFlag       bool
  1229  	formulaValue      string // 公式结果
  1230  	formulaValueFlag  bool
  1231  	affectedRange     string // 公式影响的范围
  1232  	affectedRangeFlag bool
  1233  }
  1234  
  1235  func NewFormulaBuilder() *FormulaBuilder {
  1236  	builder := &FormulaBuilder{}
  1237  	return builder
  1238  }
  1239  
  1240  // 公式
  1241  //
  1242  // 示例值:=SUM(A:A)
  1243  func (builder *FormulaBuilder) Formula(formula string) *FormulaBuilder {
  1244  	builder.formula = formula
  1245  	builder.formulaFlag = true
  1246  	return builder
  1247  }
  1248  
  1249  // 公式结果
  1250  //
  1251  // 示例值:123
  1252  func (builder *FormulaBuilder) FormulaValue(formulaValue string) *FormulaBuilder {
  1253  	builder.formulaValue = formulaValue
  1254  	builder.formulaValueFlag = true
  1255  	return builder
  1256  }
  1257  
  1258  // 公式影响的范围
  1259  //
  1260  // 示例值:Xkhr2d!A1:B2
  1261  func (builder *FormulaBuilder) AffectedRange(affectedRange string) *FormulaBuilder {
  1262  	builder.affectedRange = affectedRange
  1263  	builder.affectedRangeFlag = true
  1264  	return builder
  1265  }
  1266  
  1267  func (builder *FormulaBuilder) Build() *Formula {
  1268  	req := &Formula{}
  1269  	if builder.formulaFlag {
  1270  		req.Formula = &builder.formula
  1271  
  1272  	}
  1273  	if builder.formulaValueFlag {
  1274  		req.FormulaValue = &builder.formulaValue
  1275  
  1276  	}
  1277  	if builder.affectedRangeFlag {
  1278  		req.AffectedRange = &builder.affectedRange
  1279  
  1280  	}
  1281  	return req
  1282  }
  1283  
  1284  type GetSpreadsheet struct {
  1285  	Title   *string `json:"title,omitempty"`    // 电子表格标题
  1286  	OwnerId *string `json:"owner_id,omitempty"` // 电子表格owner
  1287  	Token   *string `json:"token,omitempty"`    // 电子表格token
  1288  	Url     *string `json:"url,omitempty"`      // 电子表格url
  1289  }
  1290  
  1291  type GetSpreadsheetBuilder struct {
  1292  	title       string // 电子表格标题
  1293  	titleFlag   bool
  1294  	ownerId     string // 电子表格owner
  1295  	ownerIdFlag bool
  1296  	token       string // 电子表格token
  1297  	tokenFlag   bool
  1298  	url         string // 电子表格url
  1299  	urlFlag     bool
  1300  }
  1301  
  1302  func NewGetSpreadsheetBuilder() *GetSpreadsheetBuilder {
  1303  	builder := &GetSpreadsheetBuilder{}
  1304  	return builder
  1305  }
  1306  
  1307  // 电子表格标题
  1308  //
  1309  // 示例值:title
  1310  func (builder *GetSpreadsheetBuilder) Title(title string) *GetSpreadsheetBuilder {
  1311  	builder.title = title
  1312  	builder.titleFlag = true
  1313  	return builder
  1314  }
  1315  
  1316  // 电子表格owner
  1317  //
  1318  // 示例值:ou_xxxxxxxxxxxx
  1319  func (builder *GetSpreadsheetBuilder) OwnerId(ownerId string) *GetSpreadsheetBuilder {
  1320  	builder.ownerId = ownerId
  1321  	builder.ownerIdFlag = true
  1322  	return builder
  1323  }
  1324  
  1325  // 电子表格token
  1326  //
  1327  // 示例值:shtxxxxxxxxxxxxxx
  1328  func (builder *GetSpreadsheetBuilder) Token(token string) *GetSpreadsheetBuilder {
  1329  	builder.token = token
  1330  	builder.tokenFlag = true
  1331  	return builder
  1332  }
  1333  
  1334  // 电子表格url
  1335  //
  1336  // 示例值:https://bytedance.feishu.cn/sheets/shtcnmBA*****yGehy8
  1337  func (builder *GetSpreadsheetBuilder) Url(url string) *GetSpreadsheetBuilder {
  1338  	builder.url = url
  1339  	builder.urlFlag = true
  1340  	return builder
  1341  }
  1342  
  1343  func (builder *GetSpreadsheetBuilder) Build() *GetSpreadsheet {
  1344  	req := &GetSpreadsheet{}
  1345  	if builder.titleFlag {
  1346  		req.Title = &builder.title
  1347  
  1348  	}
  1349  	if builder.ownerIdFlag {
  1350  		req.OwnerId = &builder.ownerId
  1351  
  1352  	}
  1353  	if builder.tokenFlag {
  1354  		req.Token = &builder.token
  1355  
  1356  	}
  1357  	if builder.urlFlag {
  1358  		req.Url = &builder.url
  1359  
  1360  	}
  1361  	return req
  1362  }
  1363  
  1364  type GridProperties struct {
  1365  	FrozenRowCount    *int `json:"frozen_row_count,omitempty"`    // 冻结的行数量
  1366  	FrozenColumnCount *int `json:"frozen_column_count,omitempty"` // 冻结的列数量
  1367  	RowCount          *int `json:"row_count,omitempty"`           // 工作表的行数
  1368  	ColumnCount       *int `json:"column_count,omitempty"`        // 工作表的列数量
  1369  }
  1370  
  1371  type GridPropertiesBuilder struct {
  1372  	frozenRowCount        int // 冻结的行数量
  1373  	frozenRowCountFlag    bool
  1374  	frozenColumnCount     int // 冻结的列数量
  1375  	frozenColumnCountFlag bool
  1376  	rowCount              int // 工作表的行数
  1377  	rowCountFlag          bool
  1378  	columnCount           int // 工作表的列数量
  1379  	columnCountFlag       bool
  1380  }
  1381  
  1382  func NewGridPropertiesBuilder() *GridPropertiesBuilder {
  1383  	builder := &GridPropertiesBuilder{}
  1384  	return builder
  1385  }
  1386  
  1387  // 冻结的行数量
  1388  //
  1389  // 示例值:0
  1390  func (builder *GridPropertiesBuilder) FrozenRowCount(frozenRowCount int) *GridPropertiesBuilder {
  1391  	builder.frozenRowCount = frozenRowCount
  1392  	builder.frozenRowCountFlag = true
  1393  	return builder
  1394  }
  1395  
  1396  // 冻结的列数量
  1397  //
  1398  // 示例值:0
  1399  func (builder *GridPropertiesBuilder) FrozenColumnCount(frozenColumnCount int) *GridPropertiesBuilder {
  1400  	builder.frozenColumnCount = frozenColumnCount
  1401  	builder.frozenColumnCountFlag = true
  1402  	return builder
  1403  }
  1404  
  1405  // 工作表的行数
  1406  //
  1407  // 示例值:200
  1408  func (builder *GridPropertiesBuilder) RowCount(rowCount int) *GridPropertiesBuilder {
  1409  	builder.rowCount = rowCount
  1410  	builder.rowCountFlag = true
  1411  	return builder
  1412  }
  1413  
  1414  // 工作表的列数量
  1415  //
  1416  // 示例值:20
  1417  func (builder *GridPropertiesBuilder) ColumnCount(columnCount int) *GridPropertiesBuilder {
  1418  	builder.columnCount = columnCount
  1419  	builder.columnCountFlag = true
  1420  	return builder
  1421  }
  1422  
  1423  func (builder *GridPropertiesBuilder) Build() *GridProperties {
  1424  	req := &GridProperties{}
  1425  	if builder.frozenRowCountFlag {
  1426  		req.FrozenRowCount = &builder.frozenRowCount
  1427  
  1428  	}
  1429  	if builder.frozenColumnCountFlag {
  1430  		req.FrozenColumnCount = &builder.frozenColumnCount
  1431  
  1432  	}
  1433  	if builder.rowCountFlag {
  1434  		req.RowCount = &builder.rowCount
  1435  
  1436  	}
  1437  	if builder.columnCountFlag {
  1438  		req.ColumnCount = &builder.columnCount
  1439  
  1440  	}
  1441  	return req
  1442  }
  1443  
  1444  type Image struct {
  1445  	ImageToken *string `json:"image_token,omitempty"` // 图片token
  1446  }
  1447  
  1448  type ImageBuilder struct {
  1449  	imageToken     string // 图片token
  1450  	imageTokenFlag bool
  1451  }
  1452  
  1453  func NewImageBuilder() *ImageBuilder {
  1454  	builder := &ImageBuilder{}
  1455  	return builder
  1456  }
  1457  
  1458  // 图片token
  1459  //
  1460  // 示例值:boxxxxxxxxxx
  1461  func (builder *ImageBuilder) ImageToken(imageToken string) *ImageBuilder {
  1462  	builder.imageToken = imageToken
  1463  	builder.imageTokenFlag = true
  1464  	return builder
  1465  }
  1466  
  1467  func (builder *ImageBuilder) Build() *Image {
  1468  	req := &Image{}
  1469  	if builder.imageTokenFlag {
  1470  		req.ImageToken = &builder.imageToken
  1471  
  1472  	}
  1473  	return req
  1474  }
  1475  
  1476  type InsertDimension struct {
  1477  	DimensionRange *Dimension `json:"dimension_range,omitempty"` // 行列操作的维度
  1478  	InheritFrom    *string    `json:"inherit_from,omitempty"`    // 是否继承上/下一行/列样式
  1479  }
  1480  
  1481  type InsertDimensionBuilder struct {
  1482  	dimensionRange     *Dimension // 行列操作的维度
  1483  	dimensionRangeFlag bool
  1484  	inheritFrom        string // 是否继承上/下一行/列样式
  1485  	inheritFromFlag    bool
  1486  }
  1487  
  1488  func NewInsertDimensionBuilder() *InsertDimensionBuilder {
  1489  	builder := &InsertDimensionBuilder{}
  1490  	return builder
  1491  }
  1492  
  1493  // 行列操作的维度
  1494  //
  1495  // 示例值:
  1496  func (builder *InsertDimensionBuilder) DimensionRange(dimensionRange *Dimension) *InsertDimensionBuilder {
  1497  	builder.dimensionRange = dimensionRange
  1498  	builder.dimensionRangeFlag = true
  1499  	return builder
  1500  }
  1501  
  1502  // 是否继承上/下一行/列样式
  1503  //
  1504  // 示例值:Before
  1505  func (builder *InsertDimensionBuilder) InheritFrom(inheritFrom string) *InsertDimensionBuilder {
  1506  	builder.inheritFrom = inheritFrom
  1507  	builder.inheritFromFlag = true
  1508  	return builder
  1509  }
  1510  
  1511  func (builder *InsertDimensionBuilder) Build() *InsertDimension {
  1512  	req := &InsertDimension{}
  1513  	if builder.dimensionRangeFlag {
  1514  		req.DimensionRange = builder.dimensionRange
  1515  	}
  1516  	if builder.inheritFromFlag {
  1517  		req.InheritFrom = &builder.inheritFrom
  1518  
  1519  	}
  1520  	return req
  1521  }
  1522  
  1523  type Link struct {
  1524  	Text          *string         `json:"text,omitempty"`           // 文本
  1525  	Link          *string         `json:"link,omitempty"`           // 链接
  1526  	SegmentStyles []*SegmentStyle `json:"segment_styles,omitempty"` //
  1527  }
  1528  
  1529  type LinkBuilder struct {
  1530  	text              string // 文本
  1531  	textFlag          bool
  1532  	link              string // 链接
  1533  	linkFlag          bool
  1534  	segmentStyles     []*SegmentStyle //
  1535  	segmentStylesFlag bool
  1536  }
  1537  
  1538  func NewLinkBuilder() *LinkBuilder {
  1539  	builder := &LinkBuilder{}
  1540  	return builder
  1541  }
  1542  
  1543  // 文本
  1544  //
  1545  // 示例值:text
  1546  func (builder *LinkBuilder) Text(text string) *LinkBuilder {
  1547  	builder.text = text
  1548  	builder.textFlag = true
  1549  	return builder
  1550  }
  1551  
  1552  // 链接
  1553  //
  1554  // 示例值:www.xxxx.cn
  1555  func (builder *LinkBuilder) Link(link string) *LinkBuilder {
  1556  	builder.link = link
  1557  	builder.linkFlag = true
  1558  	return builder
  1559  }
  1560  
  1561  //
  1562  //
  1563  // 示例值:
  1564  func (builder *LinkBuilder) SegmentStyles(segmentStyles []*SegmentStyle) *LinkBuilder {
  1565  	builder.segmentStyles = segmentStyles
  1566  	builder.segmentStylesFlag = true
  1567  	return builder
  1568  }
  1569  
  1570  func (builder *LinkBuilder) Build() *Link {
  1571  	req := &Link{}
  1572  	if builder.textFlag {
  1573  		req.Text = &builder.text
  1574  
  1575  	}
  1576  	if builder.linkFlag {
  1577  		req.Link = &builder.link
  1578  
  1579  	}
  1580  	if builder.segmentStylesFlag {
  1581  		req.SegmentStyles = builder.segmentStyles
  1582  	}
  1583  	return req
  1584  }
  1585  
  1586  type MentionDocument struct {
  1587  	Title        *string       `json:"title,omitempty"`         // 文档标题
  1588  	ObjectType   *string       `json:"object_type,omitempty"`   // 文档类型
  1589  	Token        *string       `json:"token,omitempty"`         // 文档token
  1590  	SegmentStyle *SegmentStyle `json:"segment_style,omitempty"` //
  1591  }
  1592  
  1593  type MentionDocumentBuilder struct {
  1594  	title            string // 文档标题
  1595  	titleFlag        bool
  1596  	objectType       string // 文档类型
  1597  	objectTypeFlag   bool
  1598  	token            string // 文档token
  1599  	tokenFlag        bool
  1600  	segmentStyle     *SegmentStyle //
  1601  	segmentStyleFlag bool
  1602  }
  1603  
  1604  func NewMentionDocumentBuilder() *MentionDocumentBuilder {
  1605  	builder := &MentionDocumentBuilder{}
  1606  	return builder
  1607  }
  1608  
  1609  // 文档标题
  1610  //
  1611  // 示例值:abc
  1612  func (builder *MentionDocumentBuilder) Title(title string) *MentionDocumentBuilder {
  1613  	builder.title = title
  1614  	builder.titleFlag = true
  1615  	return builder
  1616  }
  1617  
  1618  // 文档类型
  1619  //
  1620  // 示例值:sheet
  1621  func (builder *MentionDocumentBuilder) ObjectType(objectType string) *MentionDocumentBuilder {
  1622  	builder.objectType = objectType
  1623  	builder.objectTypeFlag = true
  1624  	return builder
  1625  }
  1626  
  1627  // 文档token
  1628  //
  1629  // 示例值:shtxxxxxxxxx
  1630  func (builder *MentionDocumentBuilder) Token(token string) *MentionDocumentBuilder {
  1631  	builder.token = token
  1632  	builder.tokenFlag = true
  1633  	return builder
  1634  }
  1635  
  1636  //
  1637  //
  1638  // 示例值:
  1639  func (builder *MentionDocumentBuilder) SegmentStyle(segmentStyle *SegmentStyle) *MentionDocumentBuilder {
  1640  	builder.segmentStyle = segmentStyle
  1641  	builder.segmentStyleFlag = true
  1642  	return builder
  1643  }
  1644  
  1645  func (builder *MentionDocumentBuilder) Build() *MentionDocument {
  1646  	req := &MentionDocument{}
  1647  	if builder.titleFlag {
  1648  		req.Title = &builder.title
  1649  
  1650  	}
  1651  	if builder.objectTypeFlag {
  1652  		req.ObjectType = &builder.objectType
  1653  
  1654  	}
  1655  	if builder.tokenFlag {
  1656  		req.Token = &builder.token
  1657  
  1658  	}
  1659  	if builder.segmentStyleFlag {
  1660  		req.SegmentStyle = builder.segmentStyle
  1661  	}
  1662  	return req
  1663  }
  1664  
  1665  type MentionUser struct {
  1666  	Name         *string       `json:"name,omitempty"`          // 用户名
  1667  	UserId       *string       `json:"user_id,omitempty"`       // 用户id
  1668  	Notify       *bool         `json:"notify,omitempty"`        // 是否通知用户
  1669  	SegmentStyle *SegmentStyle `json:"segment_style,omitempty"` //
  1670  }
  1671  
  1672  type MentionUserBuilder struct {
  1673  	name             string // 用户名
  1674  	nameFlag         bool
  1675  	userId           string // 用户id
  1676  	userIdFlag       bool
  1677  	notify           bool // 是否通知用户
  1678  	notifyFlag       bool
  1679  	segmentStyle     *SegmentStyle //
  1680  	segmentStyleFlag bool
  1681  }
  1682  
  1683  func NewMentionUserBuilder() *MentionUserBuilder {
  1684  	builder := &MentionUserBuilder{}
  1685  	return builder
  1686  }
  1687  
  1688  // 用户名
  1689  //
  1690  // 示例值:李四
  1691  func (builder *MentionUserBuilder) Name(name string) *MentionUserBuilder {
  1692  	builder.name = name
  1693  	builder.nameFlag = true
  1694  	return builder
  1695  }
  1696  
  1697  // 用户id
  1698  //
  1699  // 示例值:ou_xxxxxxx
  1700  func (builder *MentionUserBuilder) UserId(userId string) *MentionUserBuilder {
  1701  	builder.userId = userId
  1702  	builder.userIdFlag = true
  1703  	return builder
  1704  }
  1705  
  1706  // 是否通知用户
  1707  //
  1708  // 示例值:true
  1709  func (builder *MentionUserBuilder) Notify(notify bool) *MentionUserBuilder {
  1710  	builder.notify = notify
  1711  	builder.notifyFlag = true
  1712  	return builder
  1713  }
  1714  
  1715  //
  1716  //
  1717  // 示例值:
  1718  func (builder *MentionUserBuilder) SegmentStyle(segmentStyle *SegmentStyle) *MentionUserBuilder {
  1719  	builder.segmentStyle = segmentStyle
  1720  	builder.segmentStyleFlag = true
  1721  	return builder
  1722  }
  1723  
  1724  func (builder *MentionUserBuilder) Build() *MentionUser {
  1725  	req := &MentionUser{}
  1726  	if builder.nameFlag {
  1727  		req.Name = &builder.name
  1728  
  1729  	}
  1730  	if builder.userIdFlag {
  1731  		req.UserId = &builder.userId
  1732  
  1733  	}
  1734  	if builder.notifyFlag {
  1735  		req.Notify = &builder.notify
  1736  
  1737  	}
  1738  	if builder.segmentStyleFlag {
  1739  		req.SegmentStyle = builder.segmentStyle
  1740  	}
  1741  	return req
  1742  }
  1743  
  1744  type MergeCell struct {
  1745  	Range     *MergeRange `json:"range,omitempty"`      // 合并单元格的范围
  1746  	MergeType *string     `json:"merge_type,omitempty"` // 合并单元格类型
  1747  }
  1748  
  1749  type MergeCellBuilder struct {
  1750  	range_        *MergeRange // 合并单元格的范围
  1751  	rangeFlag     bool
  1752  	mergeType     string // 合并单元格类型
  1753  	mergeTypeFlag bool
  1754  }
  1755  
  1756  func NewMergeCellBuilder() *MergeCellBuilder {
  1757  	builder := &MergeCellBuilder{}
  1758  	return builder
  1759  }
  1760  
  1761  // 合并单元格的范围
  1762  //
  1763  // 示例值:Zj2ts!A1:B2
  1764  func (builder *MergeCellBuilder) Range(range_ *MergeRange) *MergeCellBuilder {
  1765  	builder.range_ = range_
  1766  	builder.rangeFlag = true
  1767  	return builder
  1768  }
  1769  
  1770  // 合并单元格类型
  1771  //
  1772  // 示例值:MergeAll
  1773  func (builder *MergeCellBuilder) MergeType(mergeType string) *MergeCellBuilder {
  1774  	builder.mergeType = mergeType
  1775  	builder.mergeTypeFlag = true
  1776  	return builder
  1777  }
  1778  
  1779  func (builder *MergeCellBuilder) Build() *MergeCell {
  1780  	req := &MergeCell{}
  1781  	if builder.rangeFlag {
  1782  		req.Range = builder.range_
  1783  	}
  1784  	if builder.mergeTypeFlag {
  1785  		req.MergeType = &builder.mergeType
  1786  
  1787  	}
  1788  	return req
  1789  }
  1790  
  1791  type MergeRange struct {
  1792  	StartRowIndex    *int `json:"start_row_index,omitempty"`    // 起始行
  1793  	EndRowIndex      *int `json:"end_row_index,omitempty"`      // 结束行
  1794  	StartColumnIndex *int `json:"start_column_index,omitempty"` // 起始列
  1795  	EndColumnIndex   *int `json:"end_column_index,omitempty"`   // 结束列
  1796  }
  1797  
  1798  type MergeRangeBuilder struct {
  1799  	startRowIndex        int // 起始行
  1800  	startRowIndexFlag    bool
  1801  	endRowIndex          int // 结束行
  1802  	endRowIndexFlag      bool
  1803  	startColumnIndex     int // 起始列
  1804  	startColumnIndexFlag bool
  1805  	endColumnIndex       int // 结束列
  1806  	endColumnIndexFlag   bool
  1807  }
  1808  
  1809  func NewMergeRangeBuilder() *MergeRangeBuilder {
  1810  	builder := &MergeRangeBuilder{}
  1811  	return builder
  1812  }
  1813  
  1814  // 起始行
  1815  //
  1816  // 示例值:0
  1817  func (builder *MergeRangeBuilder) StartRowIndex(startRowIndex int) *MergeRangeBuilder {
  1818  	builder.startRowIndex = startRowIndex
  1819  	builder.startRowIndexFlag = true
  1820  	return builder
  1821  }
  1822  
  1823  // 结束行
  1824  //
  1825  // 示例值:0
  1826  func (builder *MergeRangeBuilder) EndRowIndex(endRowIndex int) *MergeRangeBuilder {
  1827  	builder.endRowIndex = endRowIndex
  1828  	builder.endRowIndexFlag = true
  1829  	return builder
  1830  }
  1831  
  1832  // 起始列
  1833  //
  1834  // 示例值:0
  1835  func (builder *MergeRangeBuilder) StartColumnIndex(startColumnIndex int) *MergeRangeBuilder {
  1836  	builder.startColumnIndex = startColumnIndex
  1837  	builder.startColumnIndexFlag = true
  1838  	return builder
  1839  }
  1840  
  1841  // 结束列
  1842  //
  1843  // 示例值:0
  1844  func (builder *MergeRangeBuilder) EndColumnIndex(endColumnIndex int) *MergeRangeBuilder {
  1845  	builder.endColumnIndex = endColumnIndex
  1846  	builder.endColumnIndexFlag = true
  1847  	return builder
  1848  }
  1849  
  1850  func (builder *MergeRangeBuilder) Build() *MergeRange {
  1851  	req := &MergeRange{}
  1852  	if builder.startRowIndexFlag {
  1853  		req.StartRowIndex = &builder.startRowIndex
  1854  
  1855  	}
  1856  	if builder.endRowIndexFlag {
  1857  		req.EndRowIndex = &builder.endRowIndex
  1858  
  1859  	}
  1860  	if builder.startColumnIndexFlag {
  1861  		req.StartColumnIndex = &builder.startColumnIndex
  1862  
  1863  	}
  1864  	if builder.endColumnIndexFlag {
  1865  		req.EndColumnIndex = &builder.endColumnIndex
  1866  
  1867  	}
  1868  	return req
  1869  }
  1870  
  1871  type MoveDimension struct {
  1872  	Source           *Dimension `json:"source,omitempty"`            // 移动源位置参数
  1873  	DestinationIndex *int       `json:"destination_index,omitempty"` // 移动的目标位置行或者列号
  1874  }
  1875  
  1876  type MoveDimensionBuilder struct {
  1877  	source               *Dimension // 移动源位置参数
  1878  	sourceFlag           bool
  1879  	destinationIndex     int // 移动的目标位置行或者列号
  1880  	destinationIndexFlag bool
  1881  }
  1882  
  1883  func NewMoveDimensionBuilder() *MoveDimensionBuilder {
  1884  	builder := &MoveDimensionBuilder{}
  1885  	return builder
  1886  }
  1887  
  1888  // 移动源位置参数
  1889  //
  1890  // 示例值:
  1891  func (builder *MoveDimensionBuilder) Source(source *Dimension) *MoveDimensionBuilder {
  1892  	builder.source = source
  1893  	builder.sourceFlag = true
  1894  	return builder
  1895  }
  1896  
  1897  // 移动的目标位置行或者列号
  1898  //
  1899  // 示例值:4
  1900  func (builder *MoveDimensionBuilder) DestinationIndex(destinationIndex int) *MoveDimensionBuilder {
  1901  	builder.destinationIndex = destinationIndex
  1902  	builder.destinationIndexFlag = true
  1903  	return builder
  1904  }
  1905  
  1906  func (builder *MoveDimensionBuilder) Build() *MoveDimension {
  1907  	req := &MoveDimension{}
  1908  	if builder.sourceFlag {
  1909  		req.Source = builder.source
  1910  	}
  1911  	if builder.destinationIndexFlag {
  1912  		req.DestinationIndex = &builder.destinationIndex
  1913  
  1914  	}
  1915  	return req
  1916  }
  1917  
  1918  type MultiRange struct {
  1919  	Ranges []string `json:"ranges,omitempty"` // 同一个工作表的多个范围
  1920  }
  1921  
  1922  type MultiRangeBuilder struct {
  1923  	ranges     []string // 同一个工作表的多个范围
  1924  	rangesFlag bool
  1925  }
  1926  
  1927  func NewMultiRangeBuilder() *MultiRangeBuilder {
  1928  	builder := &MultiRangeBuilder{}
  1929  	return builder
  1930  }
  1931  
  1932  // 同一个工作表的多个范围
  1933  //
  1934  // 示例值:Sheet1!A1:B2
  1935  func (builder *MultiRangeBuilder) Ranges(ranges []string) *MultiRangeBuilder {
  1936  	builder.ranges = ranges
  1937  	builder.rangesFlag = true
  1938  	return builder
  1939  }
  1940  
  1941  func (builder *MultiRangeBuilder) Build() *MultiRange {
  1942  	req := &MultiRange{}
  1943  	if builder.rangesFlag {
  1944  		req.Ranges = builder.ranges
  1945  	}
  1946  	return req
  1947  }
  1948  
  1949  type PlainTextValueRange struct {
  1950  	Range  *string    `json:"range,omitempty"`  // 范围
  1951  	Values [][]string `json:"values,omitempty"` // 数据
  1952  }
  1953  
  1954  type PlainTextValueRangeBuilder struct {
  1955  	range_     string // 范围
  1956  	rangeFlag  bool
  1957  	values     [][]string // 数据
  1958  	valuesFlag bool
  1959  }
  1960  
  1961  func NewPlainTextValueRangeBuilder() *PlainTextValueRangeBuilder {
  1962  	builder := &PlainTextValueRangeBuilder{}
  1963  	return builder
  1964  }
  1965  
  1966  // 范围
  1967  //
  1968  // 示例值:Sheet1!A1:B2
  1969  func (builder *PlainTextValueRangeBuilder) Range(range_ string) *PlainTextValueRangeBuilder {
  1970  	builder.range_ = range_
  1971  	builder.rangeFlag = true
  1972  	return builder
  1973  }
  1974  
  1975  // 数据
  1976  //
  1977  // 示例值:
  1978  func (builder *PlainTextValueRangeBuilder) Values(values [][]string) *PlainTextValueRangeBuilder {
  1979  	builder.values = values
  1980  	builder.valuesFlag = true
  1981  	return builder
  1982  }
  1983  
  1984  func (builder *PlainTextValueRangeBuilder) Build() *PlainTextValueRange {
  1985  	req := &PlainTextValueRange{}
  1986  	if builder.rangeFlag {
  1987  		req.Range = &builder.range_
  1988  
  1989  	}
  1990  	if builder.valuesFlag {
  1991  		req.Values = builder.values
  1992  	}
  1993  	return req
  1994  }
  1995  
  1996  type Reminder struct {
  1997  	NotifyDateTime *string  `json:"notify_date_time,omitempty"` // 时间日期
  1998  	NotifyUserId   []string `json:"notify_user_id,omitempty"`   // 提醒人员
  1999  	NotifyText     *string  `json:"notify_text,omitempty"`      // 提醒内容
  2000  	NotifyStrategy *string  `json:"notify_strategy,omitempty"`  // 提醒策略
  2001  }
  2002  
  2003  type ReminderBuilder struct {
  2004  	notifyDateTime     string // 时间日期
  2005  	notifyDateTimeFlag bool
  2006  	notifyUserId       []string // 提醒人员
  2007  	notifyUserIdFlag   bool
  2008  	notifyText         string // 提醒内容
  2009  	notifyTextFlag     bool
  2010  	notifyStrategy     string // 提醒策略
  2011  	notifyStrategyFlag bool
  2012  }
  2013  
  2014  func NewReminderBuilder() *ReminderBuilder {
  2015  	builder := &ReminderBuilder{}
  2016  	return builder
  2017  }
  2018  
  2019  // 时间日期
  2020  //
  2021  // 示例值:2022/2/2 13:33
  2022  func (builder *ReminderBuilder) NotifyDateTime(notifyDateTime string) *ReminderBuilder {
  2023  	builder.notifyDateTime = notifyDateTime
  2024  	builder.notifyDateTimeFlag = true
  2025  	return builder
  2026  }
  2027  
  2028  // 提醒人员
  2029  //
  2030  // 示例值:ou_xxxxxx
  2031  func (builder *ReminderBuilder) NotifyUserId(notifyUserId []string) *ReminderBuilder {
  2032  	builder.notifyUserId = notifyUserId
  2033  	builder.notifyUserIdFlag = true
  2034  	return builder
  2035  }
  2036  
  2037  // 提醒内容
  2038  //
  2039  // 示例值:hello
  2040  func (builder *ReminderBuilder) NotifyText(notifyText string) *ReminderBuilder {
  2041  	builder.notifyText = notifyText
  2042  	builder.notifyTextFlag = true
  2043  	return builder
  2044  }
  2045  
  2046  // 提醒策略
  2047  //
  2048  // 示例值:AT_TIME
  2049  func (builder *ReminderBuilder) NotifyStrategy(notifyStrategy string) *ReminderBuilder {
  2050  	builder.notifyStrategy = notifyStrategy
  2051  	builder.notifyStrategyFlag = true
  2052  	return builder
  2053  }
  2054  
  2055  func (builder *ReminderBuilder) Build() *Reminder {
  2056  	req := &Reminder{}
  2057  	if builder.notifyDateTimeFlag {
  2058  		req.NotifyDateTime = &builder.notifyDateTime
  2059  
  2060  	}
  2061  	if builder.notifyUserIdFlag {
  2062  		req.NotifyUserId = builder.notifyUserId
  2063  	}
  2064  	if builder.notifyTextFlag {
  2065  		req.NotifyText = &builder.notifyText
  2066  
  2067  	}
  2068  	if builder.notifyStrategyFlag {
  2069  		req.NotifyStrategy = &builder.notifyStrategy
  2070  
  2071  	}
  2072  	return req
  2073  }
  2074  
  2075  type Replace struct {
  2076  	FindCondition *FindCondition `json:"find_condition,omitempty"` // 查找条件
  2077  	Find          *string        `json:"find,omitempty"`           // 查找的字符串
  2078  	Replacement   *string        `json:"replacement,omitempty"`    // 替换的字符串
  2079  }
  2080  
  2081  type ReplaceBuilder struct {
  2082  	findCondition     *FindCondition // 查找条件
  2083  	findConditionFlag bool
  2084  	find              string // 查找的字符串
  2085  	findFlag          bool
  2086  	replacement       string // 替换的字符串
  2087  	replacementFlag   bool
  2088  }
  2089  
  2090  func NewReplaceBuilder() *ReplaceBuilder {
  2091  	builder := &ReplaceBuilder{}
  2092  	return builder
  2093  }
  2094  
  2095  // 查找条件
  2096  //
  2097  // 示例值:
  2098  func (builder *ReplaceBuilder) FindCondition(findCondition *FindCondition) *ReplaceBuilder {
  2099  	builder.findCondition = findCondition
  2100  	builder.findConditionFlag = true
  2101  	return builder
  2102  }
  2103  
  2104  // 查找的字符串
  2105  //
  2106  // 示例值:hello
  2107  func (builder *ReplaceBuilder) Find(find string) *ReplaceBuilder {
  2108  	builder.find = find
  2109  	builder.findFlag = true
  2110  	return builder
  2111  }
  2112  
  2113  // 替换的字符串
  2114  //
  2115  // 示例值:world
  2116  func (builder *ReplaceBuilder) Replacement(replacement string) *ReplaceBuilder {
  2117  	builder.replacement = replacement
  2118  	builder.replacementFlag = true
  2119  	return builder
  2120  }
  2121  
  2122  func (builder *ReplaceBuilder) Build() *Replace {
  2123  	req := &Replace{}
  2124  	if builder.findConditionFlag {
  2125  		req.FindCondition = builder.findCondition
  2126  	}
  2127  	if builder.findFlag {
  2128  		req.Find = &builder.find
  2129  
  2130  	}
  2131  	if builder.replacementFlag {
  2132  		req.Replacement = &builder.replacement
  2133  
  2134  	}
  2135  	return req
  2136  }
  2137  
  2138  type RichTextValueRange struct {
  2139  	Range  *string          `json:"range,omitempty"`  // 范围
  2140  	Values [][][]*CellValue `json:"values,omitempty"` // 数据
  2141  }
  2142  
  2143  type RichTextValueRangeBuilder struct {
  2144  	range_     string // 范围
  2145  	rangeFlag  bool
  2146  	values     [][][]*CellValue // 数据
  2147  	valuesFlag bool
  2148  }
  2149  
  2150  func NewRichTextValueRangeBuilder() *RichTextValueRangeBuilder {
  2151  	builder := &RichTextValueRangeBuilder{}
  2152  	return builder
  2153  }
  2154  
  2155  // 范围
  2156  //
  2157  // 示例值:Sheet1!A1:A2
  2158  func (builder *RichTextValueRangeBuilder) Range(range_ string) *RichTextValueRangeBuilder {
  2159  	builder.range_ = range_
  2160  	builder.rangeFlag = true
  2161  	return builder
  2162  }
  2163  
  2164  // 数据
  2165  //
  2166  // 示例值:
  2167  func (builder *RichTextValueRangeBuilder) Values(values [][][]*CellValue) *RichTextValueRangeBuilder {
  2168  	builder.values = values
  2169  	builder.valuesFlag = true
  2170  	return builder
  2171  }
  2172  
  2173  func (builder *RichTextValueRangeBuilder) Build() *RichTextValueRange {
  2174  	req := &RichTextValueRange{}
  2175  	if builder.rangeFlag {
  2176  		req.Range = &builder.range_
  2177  
  2178  	}
  2179  	if builder.valuesFlag {
  2180  		req.Values = builder.values
  2181  	}
  2182  	return req
  2183  }
  2184  
  2185  type RichValue struct {
  2186  	Values [][][]*CellValue `json:"values,omitempty"` // 数据,数据结构参见[单元格数据结构](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-value/cell-data-structure)
  2187  }
  2188  
  2189  type RichValueBuilder struct {
  2190  	values     [][][]*CellValue // 数据,数据结构参见[单元格数据结构](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-value/cell-data-structure)
  2191  	valuesFlag bool
  2192  }
  2193  
  2194  func NewRichValueBuilder() *RichValueBuilder {
  2195  	builder := &RichValueBuilder{}
  2196  	return builder
  2197  }
  2198  
  2199  // 数据,数据结构参见[单元格数据结构](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-value/cell-data-structure)
  2200  //
  2201  // 示例值:数据
  2202  func (builder *RichValueBuilder) Values(values [][][]*CellValue) *RichValueBuilder {
  2203  	builder.values = values
  2204  	builder.valuesFlag = true
  2205  	return builder
  2206  }
  2207  
  2208  func (builder *RichValueBuilder) Build() *RichValue {
  2209  	req := &RichValue{}
  2210  	if builder.valuesFlag {
  2211  		req.Values = builder.values
  2212  	}
  2213  	return req
  2214  }
  2215  
  2216  type SegmentStyle struct {
  2217  	AffectedText *string            `json:"affected_text,omitempty"` // 影响的文本
  2218  	Style        *SegmentStyleStyle `json:"style,omitempty"`         // 样式
  2219  }
  2220  
  2221  type SegmentStyleBuilder struct {
  2222  	affectedText     string // 影响的文本
  2223  	affectedTextFlag bool
  2224  	style            *SegmentStyleStyle // 样式
  2225  	styleFlag        bool
  2226  }
  2227  
  2228  func NewSegmentStyleBuilder() *SegmentStyleBuilder {
  2229  	builder := &SegmentStyleBuilder{}
  2230  	return builder
  2231  }
  2232  
  2233  // 影响的文本
  2234  //
  2235  // 示例值:a
  2236  func (builder *SegmentStyleBuilder) AffectedText(affectedText string) *SegmentStyleBuilder {
  2237  	builder.affectedText = affectedText
  2238  	builder.affectedTextFlag = true
  2239  	return builder
  2240  }
  2241  
  2242  // 样式
  2243  //
  2244  // 示例值:
  2245  func (builder *SegmentStyleBuilder) Style(style *SegmentStyleStyle) *SegmentStyleBuilder {
  2246  	builder.style = style
  2247  	builder.styleFlag = true
  2248  	return builder
  2249  }
  2250  
  2251  func (builder *SegmentStyleBuilder) Build() *SegmentStyle {
  2252  	req := &SegmentStyle{}
  2253  	if builder.affectedTextFlag {
  2254  		req.AffectedText = &builder.affectedText
  2255  
  2256  	}
  2257  	if builder.styleFlag {
  2258  		req.Style = builder.style
  2259  	}
  2260  	return req
  2261  }
  2262  
  2263  type SegmentStyleStyle struct {
  2264  	Bold          *bool   `json:"bold,omitempty"`           // 加粗
  2265  	Italic        *bool   `json:"italic,omitempty"`         // 斜体
  2266  	StrikeThrough *bool   `json:"strike_through,omitempty"` // 删除线
  2267  	Underline     *bool   `json:"underline,omitempty"`      // 下划线
  2268  	ForeColor     *string `json:"fore_color,omitempty"`     // 字体颜色
  2269  	FontSize      *int    `json:"font_size,omitempty"`      // 字体大小
  2270  }
  2271  
  2272  type SegmentStyleStyleBuilder struct {
  2273  	bold              bool // 加粗
  2274  	boldFlag          bool
  2275  	italic            bool // 斜体
  2276  	italicFlag        bool
  2277  	strikeThrough     bool // 删除线
  2278  	strikeThroughFlag bool
  2279  	underline         bool // 下划线
  2280  	underlineFlag     bool
  2281  	foreColor         string // 字体颜色
  2282  	foreColorFlag     bool
  2283  	fontSize          int // 字体大小
  2284  	fontSizeFlag      bool
  2285  }
  2286  
  2287  func NewSegmentStyleStyleBuilder() *SegmentStyleStyleBuilder {
  2288  	builder := &SegmentStyleStyleBuilder{}
  2289  	return builder
  2290  }
  2291  
  2292  // 加粗
  2293  //
  2294  // 示例值:true
  2295  func (builder *SegmentStyleStyleBuilder) Bold(bold bool) *SegmentStyleStyleBuilder {
  2296  	builder.bold = bold
  2297  	builder.boldFlag = true
  2298  	return builder
  2299  }
  2300  
  2301  // 斜体
  2302  //
  2303  // 示例值:true
  2304  func (builder *SegmentStyleStyleBuilder) Italic(italic bool) *SegmentStyleStyleBuilder {
  2305  	builder.italic = italic
  2306  	builder.italicFlag = true
  2307  	return builder
  2308  }
  2309  
  2310  // 删除线
  2311  //
  2312  // 示例值:true
  2313  func (builder *SegmentStyleStyleBuilder) StrikeThrough(strikeThrough bool) *SegmentStyleStyleBuilder {
  2314  	builder.strikeThrough = strikeThrough
  2315  	builder.strikeThroughFlag = true
  2316  	return builder
  2317  }
  2318  
  2319  // 下划线
  2320  //
  2321  // 示例值:true
  2322  func (builder *SegmentStyleStyleBuilder) Underline(underline bool) *SegmentStyleStyleBuilder {
  2323  	builder.underline = underline
  2324  	builder.underlineFlag = true
  2325  	return builder
  2326  }
  2327  
  2328  // 字体颜色
  2329  //
  2330  // 示例值:#ff00ff
  2331  func (builder *SegmentStyleStyleBuilder) ForeColor(foreColor string) *SegmentStyleStyleBuilder {
  2332  	builder.foreColor = foreColor
  2333  	builder.foreColorFlag = true
  2334  	return builder
  2335  }
  2336  
  2337  // 字体大小
  2338  //
  2339  // 示例值:
  2340  func (builder *SegmentStyleStyleBuilder) FontSize(fontSize int) *SegmentStyleStyleBuilder {
  2341  	builder.fontSize = fontSize
  2342  	builder.fontSizeFlag = true
  2343  	return builder
  2344  }
  2345  
  2346  func (builder *SegmentStyleStyleBuilder) Build() *SegmentStyleStyle {
  2347  	req := &SegmentStyleStyle{}
  2348  	if builder.boldFlag {
  2349  		req.Bold = &builder.bold
  2350  
  2351  	}
  2352  	if builder.italicFlag {
  2353  		req.Italic = &builder.italic
  2354  
  2355  	}
  2356  	if builder.strikeThroughFlag {
  2357  		req.StrikeThrough = &builder.strikeThrough
  2358  
  2359  	}
  2360  	if builder.underlineFlag {
  2361  		req.Underline = &builder.underline
  2362  
  2363  	}
  2364  	if builder.foreColorFlag {
  2365  		req.ForeColor = &builder.foreColor
  2366  
  2367  	}
  2368  	if builder.fontSizeFlag {
  2369  		req.FontSize = &builder.fontSize
  2370  
  2371  	}
  2372  	return req
  2373  }
  2374  
  2375  type Sheet struct {
  2376  	SheetId        *string         `json:"sheet_id,omitempty"`        // 工作表id
  2377  	Title          *string         `json:"title,omitempty"`           // 工作表标题
  2378  	Index          *int            `json:"index,omitempty"`           // 工作表索引位置
  2379  	Hidden         *bool           `json:"hidden,omitempty"`          // 工作表是否被隐藏
  2380  	GridProperties *GridProperties `json:"grid_properties,omitempty"` // 单元格属性
  2381  	ResourceType   *string         `json:"resource_type,omitempty"`   // 工作表类型
  2382  	Merges         []*MergeRange   `json:"merges,omitempty"`          // 合并单元格
  2383  }
  2384  
  2385  type SheetBuilder struct {
  2386  	sheetId            string // 工作表id
  2387  	sheetIdFlag        bool
  2388  	title              string // 工作表标题
  2389  	titleFlag          bool
  2390  	index              int // 工作表索引位置
  2391  	indexFlag          bool
  2392  	hidden             bool // 工作表是否被隐藏
  2393  	hiddenFlag         bool
  2394  	gridProperties     *GridProperties // 单元格属性
  2395  	gridPropertiesFlag bool
  2396  	resourceType       string // 工作表类型
  2397  	resourceTypeFlag   bool
  2398  	merges             []*MergeRange // 合并单元格
  2399  	mergesFlag         bool
  2400  }
  2401  
  2402  func NewSheetBuilder() *SheetBuilder {
  2403  	builder := &SheetBuilder{}
  2404  	return builder
  2405  }
  2406  
  2407  // 工作表id
  2408  //
  2409  // 示例值:sxj5ws
  2410  func (builder *SheetBuilder) SheetId(sheetId string) *SheetBuilder {
  2411  	builder.sheetId = sheetId
  2412  	builder.sheetIdFlag = true
  2413  	return builder
  2414  }
  2415  
  2416  // 工作表标题
  2417  //
  2418  // 示例值:title
  2419  func (builder *SheetBuilder) Title(title string) *SheetBuilder {
  2420  	builder.title = title
  2421  	builder.titleFlag = true
  2422  	return builder
  2423  }
  2424  
  2425  // 工作表索引位置
  2426  //
  2427  // 示例值:0
  2428  func (builder *SheetBuilder) Index(index int) *SheetBuilder {
  2429  	builder.index = index
  2430  	builder.indexFlag = true
  2431  	return builder
  2432  }
  2433  
  2434  // 工作表是否被隐藏
  2435  //
  2436  // 示例值:false
  2437  func (builder *SheetBuilder) Hidden(hidden bool) *SheetBuilder {
  2438  	builder.hidden = hidden
  2439  	builder.hiddenFlag = true
  2440  	return builder
  2441  }
  2442  
  2443  // 单元格属性
  2444  //
  2445  // 示例值:
  2446  func (builder *SheetBuilder) GridProperties(gridProperties *GridProperties) *SheetBuilder {
  2447  	builder.gridProperties = gridProperties
  2448  	builder.gridPropertiesFlag = true
  2449  	return builder
  2450  }
  2451  
  2452  // 工作表类型
  2453  //
  2454  // 示例值:sheet
  2455  func (builder *SheetBuilder) ResourceType(resourceType string) *SheetBuilder {
  2456  	builder.resourceType = resourceType
  2457  	builder.resourceTypeFlag = true
  2458  	return builder
  2459  }
  2460  
  2461  // 合并单元格
  2462  //
  2463  // 示例值:
  2464  func (builder *SheetBuilder) Merges(merges []*MergeRange) *SheetBuilder {
  2465  	builder.merges = merges
  2466  	builder.mergesFlag = true
  2467  	return builder
  2468  }
  2469  
  2470  func (builder *SheetBuilder) Build() *Sheet {
  2471  	req := &Sheet{}
  2472  	if builder.sheetIdFlag {
  2473  		req.SheetId = &builder.sheetId
  2474  
  2475  	}
  2476  	if builder.titleFlag {
  2477  		req.Title = &builder.title
  2478  
  2479  	}
  2480  	if builder.indexFlag {
  2481  		req.Index = &builder.index
  2482  
  2483  	}
  2484  	if builder.hiddenFlag {
  2485  		req.Hidden = &builder.hidden
  2486  
  2487  	}
  2488  	if builder.gridPropertiesFlag {
  2489  		req.GridProperties = builder.gridProperties
  2490  	}
  2491  	if builder.resourceTypeFlag {
  2492  		req.ResourceType = &builder.resourceType
  2493  
  2494  	}
  2495  	if builder.mergesFlag {
  2496  		req.Merges = builder.merges
  2497  	}
  2498  	return req
  2499  }
  2500  
  2501  type SheetFilterInfo struct {
  2502  	Range           *string       `json:"range,omitempty"`             // 筛选应用范围
  2503  	FilteredOutRows []int         `json:"filtered_out_rows,omitempty"` // 筛选出来隐藏的行
  2504  	FilterInfos     []*FilterInfo `json:"filter_infos,omitempty"`      // sheet的筛选条件
  2505  }
  2506  
  2507  type SheetFilterInfoBuilder struct {
  2508  	range_              string // 筛选应用范围
  2509  	rangeFlag           bool
  2510  	filteredOutRows     []int // 筛选出来隐藏的行
  2511  	filteredOutRowsFlag bool
  2512  	filterInfos         []*FilterInfo // sheet的筛选条件
  2513  	filterInfosFlag     bool
  2514  }
  2515  
  2516  func NewSheetFilterInfoBuilder() *SheetFilterInfoBuilder {
  2517  	builder := &SheetFilterInfoBuilder{}
  2518  	return builder
  2519  }
  2520  
  2521  // 筛选应用范围
  2522  //
  2523  // 示例值:xxxxxx!A1:H14
  2524  func (builder *SheetFilterInfoBuilder) Range(range_ string) *SheetFilterInfoBuilder {
  2525  	builder.range_ = range_
  2526  	builder.rangeFlag = true
  2527  	return builder
  2528  }
  2529  
  2530  // 筛选出来隐藏的行
  2531  //
  2532  // 示例值:
  2533  func (builder *SheetFilterInfoBuilder) FilteredOutRows(filteredOutRows []int) *SheetFilterInfoBuilder {
  2534  	builder.filteredOutRows = filteredOutRows
  2535  	builder.filteredOutRowsFlag = true
  2536  	return builder
  2537  }
  2538  
  2539  // sheet的筛选条件
  2540  //
  2541  // 示例值:
  2542  func (builder *SheetFilterInfoBuilder) FilterInfos(filterInfos []*FilterInfo) *SheetFilterInfoBuilder {
  2543  	builder.filterInfos = filterInfos
  2544  	builder.filterInfosFlag = true
  2545  	return builder
  2546  }
  2547  
  2548  func (builder *SheetFilterInfoBuilder) Build() *SheetFilterInfo {
  2549  	req := &SheetFilterInfo{}
  2550  	if builder.rangeFlag {
  2551  		req.Range = &builder.range_
  2552  
  2553  	}
  2554  	if builder.filteredOutRowsFlag {
  2555  		req.FilteredOutRows = builder.filteredOutRows
  2556  	}
  2557  	if builder.filterInfosFlag {
  2558  		req.FilterInfos = builder.filterInfos
  2559  	}
  2560  	return req
  2561  }
  2562  
  2563  type SheetProperties struct {
  2564  	RowCount          *int `json:"row_count,omitempty"`           // 工作表行数
  2565  	ColumnCount       *int `json:"column_count,omitempty"`        // 工作表列数
  2566  	FrozenRowCount    *int `json:"frozen_row_count,omitempty"`    // 冻结行数
  2567  	FrozenColumnCount *int `json:"frozen_column_count,omitempty"` // 冻结列数
  2568  }
  2569  
  2570  type SheetPropertiesBuilder struct {
  2571  	rowCount              int // 工作表行数
  2572  	rowCountFlag          bool
  2573  	columnCount           int // 工作表列数
  2574  	columnCountFlag       bool
  2575  	frozenRowCount        int // 冻结行数
  2576  	frozenRowCountFlag    bool
  2577  	frozenColumnCount     int // 冻结列数
  2578  	frozenColumnCountFlag bool
  2579  }
  2580  
  2581  func NewSheetPropertiesBuilder() *SheetPropertiesBuilder {
  2582  	builder := &SheetPropertiesBuilder{}
  2583  	return builder
  2584  }
  2585  
  2586  // 工作表行数
  2587  //
  2588  // 示例值:1
  2589  func (builder *SheetPropertiesBuilder) RowCount(rowCount int) *SheetPropertiesBuilder {
  2590  	builder.rowCount = rowCount
  2591  	builder.rowCountFlag = true
  2592  	return builder
  2593  }
  2594  
  2595  // 工作表列数
  2596  //
  2597  // 示例值:1
  2598  func (builder *SheetPropertiesBuilder) ColumnCount(columnCount int) *SheetPropertiesBuilder {
  2599  	builder.columnCount = columnCount
  2600  	builder.columnCountFlag = true
  2601  	return builder
  2602  }
  2603  
  2604  // 冻结行数
  2605  //
  2606  // 示例值:1
  2607  func (builder *SheetPropertiesBuilder) FrozenRowCount(frozenRowCount int) *SheetPropertiesBuilder {
  2608  	builder.frozenRowCount = frozenRowCount
  2609  	builder.frozenRowCountFlag = true
  2610  	return builder
  2611  }
  2612  
  2613  // 冻结列数
  2614  //
  2615  // 示例值:1
  2616  func (builder *SheetPropertiesBuilder) FrozenColumnCount(frozenColumnCount int) *SheetPropertiesBuilder {
  2617  	builder.frozenColumnCount = frozenColumnCount
  2618  	builder.frozenColumnCountFlag = true
  2619  	return builder
  2620  }
  2621  
  2622  func (builder *SheetPropertiesBuilder) Build() *SheetProperties {
  2623  	req := &SheetProperties{}
  2624  	if builder.rowCountFlag {
  2625  		req.RowCount = &builder.rowCount
  2626  
  2627  	}
  2628  	if builder.columnCountFlag {
  2629  		req.ColumnCount = &builder.columnCount
  2630  
  2631  	}
  2632  	if builder.frozenRowCountFlag {
  2633  		req.FrozenRowCount = &builder.frozenRowCount
  2634  
  2635  	}
  2636  	if builder.frozenColumnCountFlag {
  2637  		req.FrozenColumnCount = &builder.frozenColumnCount
  2638  
  2639  	}
  2640  	return req
  2641  }
  2642  
  2643  type Spreadsheet struct {
  2644  	Title            *string `json:"title,omitempty"`             // 表格标题
  2645  	FolderToken      *string `json:"folder_token,omitempty"`      // 文件夹token,获取方式见[概述](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction)
  2646  	Url              *string `json:"url,omitempty"`               // 文档url
  2647  	SpreadsheetToken *string `json:"spreadsheet_token,omitempty"` // 表格token
  2648  }
  2649  
  2650  type SpreadsheetBuilder struct {
  2651  	title                string // 表格标题
  2652  	titleFlag            bool
  2653  	folderToken          string // 文件夹token,获取方式见[概述](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction)
  2654  	folderTokenFlag      bool
  2655  	url                  string // 文档url
  2656  	urlFlag              bool
  2657  	spreadsheetToken     string // 表格token
  2658  	spreadsheetTokenFlag bool
  2659  }
  2660  
  2661  func NewSpreadsheetBuilder() *SpreadsheetBuilder {
  2662  	builder := &SpreadsheetBuilder{}
  2663  	return builder
  2664  }
  2665  
  2666  // 表格标题
  2667  //
  2668  // 示例值:title
  2669  func (builder *SpreadsheetBuilder) Title(title string) *SpreadsheetBuilder {
  2670  	builder.title = title
  2671  	builder.titleFlag = true
  2672  	return builder
  2673  }
  2674  
  2675  // 文件夹token,获取方式见[概述](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction)
  2676  //
  2677  // 示例值:fldcnMsNb*****hIW9IjG1LVswg
  2678  func (builder *SpreadsheetBuilder) FolderToken(folderToken string) *SpreadsheetBuilder {
  2679  	builder.folderToken = folderToken
  2680  	builder.folderTokenFlag = true
  2681  	return builder
  2682  }
  2683  
  2684  // 文档url
  2685  //
  2686  // 示例值:https://bytedance.feishu.cn/sheets/shtcnmBA*****yGehy8
  2687  func (builder *SpreadsheetBuilder) Url(url string) *SpreadsheetBuilder {
  2688  	builder.url = url
  2689  	builder.urlFlag = true
  2690  	return builder
  2691  }
  2692  
  2693  // 表格token
  2694  //
  2695  // 示例值:shtcnmBA*****yGehy8
  2696  func (builder *SpreadsheetBuilder) SpreadsheetToken(spreadsheetToken string) *SpreadsheetBuilder {
  2697  	builder.spreadsheetToken = spreadsheetToken
  2698  	builder.spreadsheetTokenFlag = true
  2699  	return builder
  2700  }
  2701  
  2702  func (builder *SpreadsheetBuilder) Build() *Spreadsheet {
  2703  	req := &Spreadsheet{}
  2704  	if builder.titleFlag {
  2705  		req.Title = &builder.title
  2706  
  2707  	}
  2708  	if builder.folderTokenFlag {
  2709  		req.FolderToken = &builder.folderToken
  2710  
  2711  	}
  2712  	if builder.urlFlag {
  2713  		req.Url = &builder.url
  2714  
  2715  	}
  2716  	if builder.spreadsheetTokenFlag {
  2717  		req.SpreadsheetToken = &builder.spreadsheetToken
  2718  
  2719  	}
  2720  	return req
  2721  }
  2722  
  2723  type Text struct {
  2724  	Text         *string       `json:"text,omitempty"`          // 文本值
  2725  	SegmentStyle *SegmentStyle `json:"segment_style,omitempty"` //
  2726  }
  2727  
  2728  type TextBuilder struct {
  2729  	text             string // 文本值
  2730  	textFlag         bool
  2731  	segmentStyle     *SegmentStyle //
  2732  	segmentStyleFlag bool
  2733  }
  2734  
  2735  func NewTextBuilder() *TextBuilder {
  2736  	builder := &TextBuilder{}
  2737  	return builder
  2738  }
  2739  
  2740  // 文本值
  2741  //
  2742  // 示例值:abc
  2743  func (builder *TextBuilder) Text(text string) *TextBuilder {
  2744  	builder.text = text
  2745  	builder.textFlag = true
  2746  	return builder
  2747  }
  2748  
  2749  //
  2750  //
  2751  // 示例值:
  2752  func (builder *TextBuilder) SegmentStyle(segmentStyle *SegmentStyle) *TextBuilder {
  2753  	builder.segmentStyle = segmentStyle
  2754  	builder.segmentStyleFlag = true
  2755  	return builder
  2756  }
  2757  
  2758  func (builder *TextBuilder) Build() *Text {
  2759  	req := &Text{}
  2760  	if builder.textFlag {
  2761  		req.Text = &builder.text
  2762  
  2763  	}
  2764  	if builder.segmentStyleFlag {
  2765  		req.SegmentStyle = builder.segmentStyle
  2766  	}
  2767  	return req
  2768  }
  2769  
  2770  type UpdateDimensionProperties struct {
  2771  	DimensionRange *Dimension           `json:"dimension_range,omitempty"` // 需要更新的行列信息
  2772  	Properties     *DimensionProperties `json:"properties,omitempty"`      // 更新的属性
  2773  }
  2774  
  2775  type UpdateDimensionPropertiesBuilder struct {
  2776  	dimensionRange     *Dimension // 需要更新的行列信息
  2777  	dimensionRangeFlag bool
  2778  	properties         *DimensionProperties // 更新的属性
  2779  	propertiesFlag     bool
  2780  }
  2781  
  2782  func NewUpdateDimensionPropertiesBuilder() *UpdateDimensionPropertiesBuilder {
  2783  	builder := &UpdateDimensionPropertiesBuilder{}
  2784  	return builder
  2785  }
  2786  
  2787  // 需要更新的行列信息
  2788  //
  2789  // 示例值:
  2790  func (builder *UpdateDimensionPropertiesBuilder) DimensionRange(dimensionRange *Dimension) *UpdateDimensionPropertiesBuilder {
  2791  	builder.dimensionRange = dimensionRange
  2792  	builder.dimensionRangeFlag = true
  2793  	return builder
  2794  }
  2795  
  2796  // 更新的属性
  2797  //
  2798  // 示例值:
  2799  func (builder *UpdateDimensionPropertiesBuilder) Properties(properties *DimensionProperties) *UpdateDimensionPropertiesBuilder {
  2800  	builder.properties = properties
  2801  	builder.propertiesFlag = true
  2802  	return builder
  2803  }
  2804  
  2805  func (builder *UpdateDimensionPropertiesBuilder) Build() *UpdateDimensionProperties {
  2806  	req := &UpdateDimensionProperties{}
  2807  	if builder.dimensionRangeFlag {
  2808  		req.DimensionRange = builder.dimensionRange
  2809  	}
  2810  	if builder.propertiesFlag {
  2811  		req.Properties = builder.properties
  2812  	}
  2813  	return req
  2814  }
  2815  
  2816  type UpdateGridProperties struct {
  2817  	FrozenRowCount    *int `json:"frozen_row_count,omitempty"`    // 冻结行数
  2818  	FrozenColumnCount *int `json:"frozen_column_count,omitempty"` // 冻结列数
  2819  }
  2820  
  2821  type UpdateGridPropertiesBuilder struct {
  2822  	frozenRowCount        int // 冻结行数
  2823  	frozenRowCountFlag    bool
  2824  	frozenColumnCount     int // 冻结列数
  2825  	frozenColumnCountFlag bool
  2826  }
  2827  
  2828  func NewUpdateGridPropertiesBuilder() *UpdateGridPropertiesBuilder {
  2829  	builder := &UpdateGridPropertiesBuilder{}
  2830  	return builder
  2831  }
  2832  
  2833  // 冻结行数
  2834  //
  2835  // 示例值:1
  2836  func (builder *UpdateGridPropertiesBuilder) FrozenRowCount(frozenRowCount int) *UpdateGridPropertiesBuilder {
  2837  	builder.frozenRowCount = frozenRowCount
  2838  	builder.frozenRowCountFlag = true
  2839  	return builder
  2840  }
  2841  
  2842  // 冻结列数
  2843  //
  2844  // 示例值:1
  2845  func (builder *UpdateGridPropertiesBuilder) FrozenColumnCount(frozenColumnCount int) *UpdateGridPropertiesBuilder {
  2846  	builder.frozenColumnCount = frozenColumnCount
  2847  	builder.frozenColumnCountFlag = true
  2848  	return builder
  2849  }
  2850  
  2851  func (builder *UpdateGridPropertiesBuilder) Build() *UpdateGridProperties {
  2852  	req := &UpdateGridProperties{}
  2853  	if builder.frozenRowCountFlag {
  2854  		req.FrozenRowCount = &builder.frozenRowCount
  2855  
  2856  	}
  2857  	if builder.frozenColumnCountFlag {
  2858  		req.FrozenColumnCount = &builder.frozenColumnCount
  2859  
  2860  	}
  2861  	return req
  2862  }
  2863  
  2864  type UpdateSheetFilter struct {
  2865  	Col       *string    `json:"col,omitempty"`       // 更新筛选条件的列
  2866  	Condition *Condition `json:"condition,omitempty"` // 筛选条件
  2867  }
  2868  
  2869  type UpdateSheetFilterBuilder struct {
  2870  	col           string // 更新筛选条件的列
  2871  	colFlag       bool
  2872  	condition     *Condition // 筛选条件
  2873  	conditionFlag bool
  2874  }
  2875  
  2876  func NewUpdateSheetFilterBuilder() *UpdateSheetFilterBuilder {
  2877  	builder := &UpdateSheetFilterBuilder{}
  2878  	return builder
  2879  }
  2880  
  2881  // 更新筛选条件的列
  2882  //
  2883  // 示例值:E
  2884  func (builder *UpdateSheetFilterBuilder) Col(col string) *UpdateSheetFilterBuilder {
  2885  	builder.col = col
  2886  	builder.colFlag = true
  2887  	return builder
  2888  }
  2889  
  2890  // 筛选条件
  2891  //
  2892  // 示例值:
  2893  func (builder *UpdateSheetFilterBuilder) Condition(condition *Condition) *UpdateSheetFilterBuilder {
  2894  	builder.condition = condition
  2895  	builder.conditionFlag = true
  2896  	return builder
  2897  }
  2898  
  2899  func (builder *UpdateSheetFilterBuilder) Build() *UpdateSheetFilter {
  2900  	req := &UpdateSheetFilter{}
  2901  	if builder.colFlag {
  2902  		req.Col = &builder.col
  2903  
  2904  	}
  2905  	if builder.conditionFlag {
  2906  		req.Condition = builder.condition
  2907  	}
  2908  	return req
  2909  }
  2910  
  2911  type UpdateSpreadsheetProperties struct {
  2912  	Title *string `json:"title,omitempty"` // 表格标题
  2913  }
  2914  
  2915  type UpdateSpreadsheetPropertiesBuilder struct {
  2916  	title     string // 表格标题
  2917  	titleFlag bool
  2918  }
  2919  
  2920  func NewUpdateSpreadsheetPropertiesBuilder() *UpdateSpreadsheetPropertiesBuilder {
  2921  	builder := &UpdateSpreadsheetPropertiesBuilder{}
  2922  	return builder
  2923  }
  2924  
  2925  // 表格标题
  2926  //
  2927  // 示例值:title
  2928  func (builder *UpdateSpreadsheetPropertiesBuilder) Title(title string) *UpdateSpreadsheetPropertiesBuilder {
  2929  	builder.title = title
  2930  	builder.titleFlag = true
  2931  	return builder
  2932  }
  2933  
  2934  func (builder *UpdateSpreadsheetPropertiesBuilder) Build() *UpdateSpreadsheetProperties {
  2935  	req := &UpdateSpreadsheetProperties{}
  2936  	if builder.titleFlag {
  2937  		req.Title = &builder.title
  2938  
  2939  	}
  2940  	return req
  2941  }
  2942  
  2943  type Value struct {
  2944  	Range  *string          `json:"range,omitempty"`  // 范围
  2945  	Values [][][]*CellValue `json:"values,omitempty"` // 数据,数据结构参见[单元格数据结构](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-value/cell-data-structure)
  2946  }
  2947  
  2948  type ValueBuilder struct {
  2949  	range_     string // 范围
  2950  	rangeFlag  bool
  2951  	values     [][][]*CellValue // 数据,数据结构参见[单元格数据结构](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-value/cell-data-structure)
  2952  	valuesFlag bool
  2953  }
  2954  
  2955  func NewValueBuilder() *ValueBuilder {
  2956  	builder := &ValueBuilder{}
  2957  	return builder
  2958  }
  2959  
  2960  // 范围
  2961  //
  2962  // 示例值:Sheet1!A1:A2
  2963  func (builder *ValueBuilder) Range(range_ string) *ValueBuilder {
  2964  	builder.range_ = range_
  2965  	builder.rangeFlag = true
  2966  	return builder
  2967  }
  2968  
  2969  // 数据,数据结构参见[单元格数据结构](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/sheets-v3/spreadsheet-sheet-value/cell-data-structure)
  2970  //
  2971  // 示例值:[]
  2972  func (builder *ValueBuilder) Values(values [][][]*CellValue) *ValueBuilder {
  2973  	builder.values = values
  2974  	builder.valuesFlag = true
  2975  	return builder
  2976  }
  2977  
  2978  func (builder *ValueBuilder) Build() *Value {
  2979  	req := &Value{}
  2980  	if builder.rangeFlag {
  2981  		req.Range = &builder.range_
  2982  
  2983  	}
  2984  	if builder.valuesFlag {
  2985  		req.Values = builder.values
  2986  	}
  2987  	return req
  2988  }
  2989  
  2990  type ValueElement struct {
  2991  	Value *string `json:"value,omitempty"` // 整型或浮点型数值
  2992  }
  2993  
  2994  type ValueElementBuilder struct {
  2995  	value     string // 整型或浮点型数值
  2996  	valueFlag bool
  2997  }
  2998  
  2999  func NewValueElementBuilder() *ValueElementBuilder {
  3000  	builder := &ValueElementBuilder{}
  3001  	return builder
  3002  }
  3003  
  3004  // 整型或浮点型数值
  3005  //
  3006  // 示例值:
  3007  func (builder *ValueElementBuilder) Value(value string) *ValueElementBuilder {
  3008  	builder.value = value
  3009  	builder.valueFlag = true
  3010  	return builder
  3011  }
  3012  
  3013  func (builder *ValueElementBuilder) Build() *ValueElement {
  3014  	req := &ValueElement{}
  3015  	if builder.valueFlag {
  3016  		req.Value = &builder.value
  3017  
  3018  	}
  3019  	return req
  3020  }
  3021  
  3022  type CreateSpreadsheetReqBuilder struct {
  3023  	apiReq      *larkcore.ApiReq
  3024  	spreadsheet *Spreadsheet
  3025  }
  3026  
  3027  func NewCreateSpreadsheetReqBuilder() *CreateSpreadsheetReqBuilder {
  3028  	builder := &CreateSpreadsheetReqBuilder{}
  3029  	builder.apiReq = &larkcore.ApiReq{
  3030  		PathParams:  larkcore.PathParams{},
  3031  		QueryParams: larkcore.QueryParams{},
  3032  	}
  3033  	return builder
  3034  }
  3035  
  3036  // 使用该接口可以在指定的目录下创建在线表格。
  3037  func (builder *CreateSpreadsheetReqBuilder) Spreadsheet(spreadsheet *Spreadsheet) *CreateSpreadsheetReqBuilder {
  3038  	builder.spreadsheet = spreadsheet
  3039  	return builder
  3040  }
  3041  
  3042  func (builder *CreateSpreadsheetReqBuilder) Build() *CreateSpreadsheetReq {
  3043  	req := &CreateSpreadsheetReq{}
  3044  	req.apiReq = &larkcore.ApiReq{}
  3045  	req.apiReq.Body = builder.spreadsheet
  3046  	return req
  3047  }
  3048  
  3049  type CreateSpreadsheetReq struct {
  3050  	apiReq      *larkcore.ApiReq
  3051  	Spreadsheet *Spreadsheet `body:""`
  3052  }
  3053  
  3054  type CreateSpreadsheetRespData struct {
  3055  	Spreadsheet *Spreadsheet `json:"spreadsheet,omitempty"` // 表格
  3056  }
  3057  
  3058  type CreateSpreadsheetResp struct {
  3059  	*larkcore.ApiResp `json:"-"`
  3060  	larkcore.CodeError
  3061  	Data *CreateSpreadsheetRespData `json:"data"` // 业务数据
  3062  }
  3063  
  3064  func (resp *CreateSpreadsheetResp) Success() bool {
  3065  	return resp.Code == 0
  3066  }
  3067  
  3068  type FindSpreadsheetSheetReqBuilder struct {
  3069  	apiReq *larkcore.ApiReq
  3070  	find   *Find
  3071  }
  3072  
  3073  func NewFindSpreadsheetSheetReqBuilder() *FindSpreadsheetSheetReqBuilder {
  3074  	builder := &FindSpreadsheetSheetReqBuilder{}
  3075  	builder.apiReq = &larkcore.ApiReq{
  3076  		PathParams:  larkcore.PathParams{},
  3077  		QueryParams: larkcore.QueryParams{},
  3078  	}
  3079  	return builder
  3080  }
  3081  
  3082  // 表格的 token
  3083  //
  3084  // 示例值:shtcnmBA*****yGehy8
  3085  func (builder *FindSpreadsheetSheetReqBuilder) SpreadsheetToken(spreadsheetToken string) *FindSpreadsheetSheetReqBuilder {
  3086  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3087  	return builder
  3088  }
  3089  
  3090  // 子表的 id
  3091  //
  3092  // 示例值:0b**12
  3093  func (builder *FindSpreadsheetSheetReqBuilder) SheetId(sheetId string) *FindSpreadsheetSheetReqBuilder {
  3094  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3095  	return builder
  3096  }
  3097  
  3098  // 按照指定的条件查找子表的某个范围内的数据符合条件的单元格位置。请求体中的 range 和 find 字段为必填。
  3099  func (builder *FindSpreadsheetSheetReqBuilder) Find(find *Find) *FindSpreadsheetSheetReqBuilder {
  3100  	builder.find = find
  3101  	return builder
  3102  }
  3103  
  3104  func (builder *FindSpreadsheetSheetReqBuilder) Build() *FindSpreadsheetSheetReq {
  3105  	req := &FindSpreadsheetSheetReq{}
  3106  	req.apiReq = &larkcore.ApiReq{}
  3107  	req.apiReq.PathParams = builder.apiReq.PathParams
  3108  	req.apiReq.Body = builder.find
  3109  	return req
  3110  }
  3111  
  3112  type FindSpreadsheetSheetReq struct {
  3113  	apiReq *larkcore.ApiReq
  3114  	Find   *Find `body:""`
  3115  }
  3116  
  3117  type FindSpreadsheetSheetRespData struct {
  3118  	FindResult *FindReplaceResult `json:"find_result,omitempty"` // 查找返回符合条件的信息
  3119  }
  3120  
  3121  type FindSpreadsheetSheetResp struct {
  3122  	*larkcore.ApiResp `json:"-"`
  3123  	larkcore.CodeError
  3124  	Data *FindSpreadsheetSheetRespData `json:"data"` // 业务数据
  3125  }
  3126  
  3127  func (resp *FindSpreadsheetSheetResp) Success() bool {
  3128  	return resp.Code == 0
  3129  }
  3130  
  3131  type MoveDimensionSpreadsheetSheetReqBuilder struct {
  3132  	apiReq        *larkcore.ApiReq
  3133  	moveDimension *MoveDimension
  3134  }
  3135  
  3136  func NewMoveDimensionSpreadsheetSheetReqBuilder() *MoveDimensionSpreadsheetSheetReqBuilder {
  3137  	builder := &MoveDimensionSpreadsheetSheetReqBuilder{}
  3138  	builder.apiReq = &larkcore.ApiReq{
  3139  		PathParams:  larkcore.PathParams{},
  3140  		QueryParams: larkcore.QueryParams{},
  3141  	}
  3142  	return builder
  3143  }
  3144  
  3145  // 表格 token
  3146  //
  3147  // 示例值:shtcnmBA\*****yGehy8
  3148  func (builder *MoveDimensionSpreadsheetSheetReqBuilder) SpreadsheetToken(spreadsheetToken string) *MoveDimensionSpreadsheetSheetReqBuilder {
  3149  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3150  	return builder
  3151  }
  3152  
  3153  // 子表 id
  3154  //
  3155  // 示例值:0b\**12
  3156  func (builder *MoveDimensionSpreadsheetSheetReqBuilder) SheetId(sheetId string) *MoveDimensionSpreadsheetSheetReqBuilder {
  3157  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3158  	return builder
  3159  }
  3160  
  3161  // 该接口用于移动行列,行列被移动到目标位置后,原本在目标位置的行列会对应右移或下移。
  3162  func (builder *MoveDimensionSpreadsheetSheetReqBuilder) MoveDimension(moveDimension *MoveDimension) *MoveDimensionSpreadsheetSheetReqBuilder {
  3163  	builder.moveDimension = moveDimension
  3164  	return builder
  3165  }
  3166  
  3167  func (builder *MoveDimensionSpreadsheetSheetReqBuilder) Build() *MoveDimensionSpreadsheetSheetReq {
  3168  	req := &MoveDimensionSpreadsheetSheetReq{}
  3169  	req.apiReq = &larkcore.ApiReq{}
  3170  	req.apiReq.PathParams = builder.apiReq.PathParams
  3171  	req.apiReq.Body = builder.moveDimension
  3172  	return req
  3173  }
  3174  
  3175  type MoveDimensionSpreadsheetSheetReq struct {
  3176  	apiReq        *larkcore.ApiReq
  3177  	MoveDimension *MoveDimension `body:""`
  3178  }
  3179  
  3180  type MoveDimensionSpreadsheetSheetResp struct {
  3181  	*larkcore.ApiResp `json:"-"`
  3182  	larkcore.CodeError
  3183  }
  3184  
  3185  func (resp *MoveDimensionSpreadsheetSheetResp) Success() bool {
  3186  	return resp.Code == 0
  3187  }
  3188  
  3189  type ReplaceSpreadsheetSheetReqBuilder struct {
  3190  	apiReq  *larkcore.ApiReq
  3191  	replace *Replace
  3192  }
  3193  
  3194  func NewReplaceSpreadsheetSheetReqBuilder() *ReplaceSpreadsheetSheetReqBuilder {
  3195  	builder := &ReplaceSpreadsheetSheetReqBuilder{}
  3196  	builder.apiReq = &larkcore.ApiReq{
  3197  		PathParams:  larkcore.PathParams{},
  3198  		QueryParams: larkcore.QueryParams{},
  3199  	}
  3200  	return builder
  3201  }
  3202  
  3203  // Spreadsheet token
  3204  //
  3205  // 示例值:shtcnmBA*****yGehy8
  3206  func (builder *ReplaceSpreadsheetSheetReqBuilder) SpreadsheetToken(spreadsheetToken string) *ReplaceSpreadsheetSheetReqBuilder {
  3207  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3208  	return builder
  3209  }
  3210  
  3211  // Sheet id
  3212  //
  3213  // 示例值:0b**12
  3214  func (builder *ReplaceSpreadsheetSheetReqBuilder) SheetId(sheetId string) *ReplaceSpreadsheetSheetReqBuilder {
  3215  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3216  	return builder
  3217  }
  3218  
  3219  // 按照指定的条件查找子表的某个范围内的数据符合条件的单元格并替换值,返回替换成功的单元格位置。一次请求最多允许替换5000个单元格,如果超过请将range缩小范围再操作。请求体中的 range、find、replaccement 字段必填。
  3220  func (builder *ReplaceSpreadsheetSheetReqBuilder) Replace(replace *Replace) *ReplaceSpreadsheetSheetReqBuilder {
  3221  	builder.replace = replace
  3222  	return builder
  3223  }
  3224  
  3225  func (builder *ReplaceSpreadsheetSheetReqBuilder) Build() *ReplaceSpreadsheetSheetReq {
  3226  	req := &ReplaceSpreadsheetSheetReq{}
  3227  	req.apiReq = &larkcore.ApiReq{}
  3228  	req.apiReq.PathParams = builder.apiReq.PathParams
  3229  	req.apiReq.Body = builder.replace
  3230  	return req
  3231  }
  3232  
  3233  type ReplaceSpreadsheetSheetReq struct {
  3234  	apiReq  *larkcore.ApiReq
  3235  	Replace *Replace `body:""`
  3236  }
  3237  
  3238  type ReplaceSpreadsheetSheetRespData struct {
  3239  	ReplaceResult *FindReplaceResult `json:"replace_result,omitempty"` // 符合查找条件并替换的单元格信息
  3240  }
  3241  
  3242  type ReplaceSpreadsheetSheetResp struct {
  3243  	*larkcore.ApiResp `json:"-"`
  3244  	larkcore.CodeError
  3245  	Data *ReplaceSpreadsheetSheetRespData `json:"data"` // 业务数据
  3246  }
  3247  
  3248  func (resp *ReplaceSpreadsheetSheetResp) Success() bool {
  3249  	return resp.Code == 0
  3250  }
  3251  
  3252  type CreateSpreadsheetSheetFilterReqBuilder struct {
  3253  	apiReq            *larkcore.ApiReq
  3254  	createSheetFilter *CreateSheetFilter
  3255  }
  3256  
  3257  func NewCreateSpreadsheetSheetFilterReqBuilder() *CreateSpreadsheetSheetFilterReqBuilder {
  3258  	builder := &CreateSpreadsheetSheetFilterReqBuilder{}
  3259  	builder.apiReq = &larkcore.ApiReq{
  3260  		PathParams:  larkcore.PathParams{},
  3261  		QueryParams: larkcore.QueryParams{},
  3262  	}
  3263  	return builder
  3264  }
  3265  
  3266  // 表格 token
  3267  //
  3268  // 示例值:shtcnmBA\*****yGehy8
  3269  func (builder *CreateSpreadsheetSheetFilterReqBuilder) SpreadsheetToken(spreadsheetToken string) *CreateSpreadsheetSheetFilterReqBuilder {
  3270  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3271  	return builder
  3272  }
  3273  
  3274  // 子表 id
  3275  //
  3276  // 示例值:0b\**12
  3277  func (builder *CreateSpreadsheetSheetFilterReqBuilder) SheetId(sheetId string) *CreateSpreadsheetSheetFilterReqBuilder {
  3278  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3279  	return builder
  3280  }
  3281  
  3282  // 在子表内创建筛选。
  3283  func (builder *CreateSpreadsheetSheetFilterReqBuilder) CreateSheetFilter(createSheetFilter *CreateSheetFilter) *CreateSpreadsheetSheetFilterReqBuilder {
  3284  	builder.createSheetFilter = createSheetFilter
  3285  	return builder
  3286  }
  3287  
  3288  func (builder *CreateSpreadsheetSheetFilterReqBuilder) Build() *CreateSpreadsheetSheetFilterReq {
  3289  	req := &CreateSpreadsheetSheetFilterReq{}
  3290  	req.apiReq = &larkcore.ApiReq{}
  3291  	req.apiReq.PathParams = builder.apiReq.PathParams
  3292  	req.apiReq.Body = builder.createSheetFilter
  3293  	return req
  3294  }
  3295  
  3296  type CreateSpreadsheetSheetFilterReq struct {
  3297  	apiReq            *larkcore.ApiReq
  3298  	CreateSheetFilter *CreateSheetFilter `body:""`
  3299  }
  3300  
  3301  type CreateSpreadsheetSheetFilterResp struct {
  3302  	*larkcore.ApiResp `json:"-"`
  3303  	larkcore.CodeError
  3304  }
  3305  
  3306  func (resp *CreateSpreadsheetSheetFilterResp) Success() bool {
  3307  	return resp.Code == 0
  3308  }
  3309  
  3310  type DeleteSpreadsheetSheetFilterReqBuilder struct {
  3311  	apiReq *larkcore.ApiReq
  3312  }
  3313  
  3314  func NewDeleteSpreadsheetSheetFilterReqBuilder() *DeleteSpreadsheetSheetFilterReqBuilder {
  3315  	builder := &DeleteSpreadsheetSheetFilterReqBuilder{}
  3316  	builder.apiReq = &larkcore.ApiReq{
  3317  		PathParams:  larkcore.PathParams{},
  3318  		QueryParams: larkcore.QueryParams{},
  3319  	}
  3320  	return builder
  3321  }
  3322  
  3323  // 表格 token
  3324  //
  3325  // 示例值:shtcnmBA\*****yGehy8
  3326  func (builder *DeleteSpreadsheetSheetFilterReqBuilder) SpreadsheetToken(spreadsheetToken string) *DeleteSpreadsheetSheetFilterReqBuilder {
  3327  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3328  	return builder
  3329  }
  3330  
  3331  // 子表 id
  3332  //
  3333  // 示例值:0b\**12
  3334  func (builder *DeleteSpreadsheetSheetFilterReqBuilder) SheetId(sheetId string) *DeleteSpreadsheetSheetFilterReqBuilder {
  3335  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3336  	return builder
  3337  }
  3338  
  3339  func (builder *DeleteSpreadsheetSheetFilterReqBuilder) Build() *DeleteSpreadsheetSheetFilterReq {
  3340  	req := &DeleteSpreadsheetSheetFilterReq{}
  3341  	req.apiReq = &larkcore.ApiReq{}
  3342  	req.apiReq.PathParams = builder.apiReq.PathParams
  3343  	return req
  3344  }
  3345  
  3346  type DeleteSpreadsheetSheetFilterReq struct {
  3347  	apiReq *larkcore.ApiReq
  3348  }
  3349  
  3350  type DeleteSpreadsheetSheetFilterResp struct {
  3351  	*larkcore.ApiResp `json:"-"`
  3352  	larkcore.CodeError
  3353  }
  3354  
  3355  func (resp *DeleteSpreadsheetSheetFilterResp) Success() bool {
  3356  	return resp.Code == 0
  3357  }
  3358  
  3359  type GetSpreadsheetSheetFilterReqBuilder struct {
  3360  	apiReq *larkcore.ApiReq
  3361  }
  3362  
  3363  func NewGetSpreadsheetSheetFilterReqBuilder() *GetSpreadsheetSheetFilterReqBuilder {
  3364  	builder := &GetSpreadsheetSheetFilterReqBuilder{}
  3365  	builder.apiReq = &larkcore.ApiReq{
  3366  		PathParams:  larkcore.PathParams{},
  3367  		QueryParams: larkcore.QueryParams{},
  3368  	}
  3369  	return builder
  3370  }
  3371  
  3372  // 表格 token
  3373  //
  3374  // 示例值:shtcnmBA\*****yGehy8
  3375  func (builder *GetSpreadsheetSheetFilterReqBuilder) SpreadsheetToken(spreadsheetToken string) *GetSpreadsheetSheetFilterReqBuilder {
  3376  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3377  	return builder
  3378  }
  3379  
  3380  // 子表 id
  3381  //
  3382  // 示例值:0b\**12
  3383  func (builder *GetSpreadsheetSheetFilterReqBuilder) SheetId(sheetId string) *GetSpreadsheetSheetFilterReqBuilder {
  3384  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3385  	return builder
  3386  }
  3387  
  3388  func (builder *GetSpreadsheetSheetFilterReqBuilder) Build() *GetSpreadsheetSheetFilterReq {
  3389  	req := &GetSpreadsheetSheetFilterReq{}
  3390  	req.apiReq = &larkcore.ApiReq{}
  3391  	req.apiReq.PathParams = builder.apiReq.PathParams
  3392  	return req
  3393  }
  3394  
  3395  type GetSpreadsheetSheetFilterReq struct {
  3396  	apiReq *larkcore.ApiReq
  3397  }
  3398  
  3399  type GetSpreadsheetSheetFilterRespData struct {
  3400  	SheetFilterInfo *SheetFilterInfo `json:"sheet_filter_info,omitempty"` // 筛选信息
  3401  }
  3402  
  3403  type GetSpreadsheetSheetFilterResp struct {
  3404  	*larkcore.ApiResp `json:"-"`
  3405  	larkcore.CodeError
  3406  	Data *GetSpreadsheetSheetFilterRespData `json:"data"` // 业务数据
  3407  }
  3408  
  3409  func (resp *GetSpreadsheetSheetFilterResp) Success() bool {
  3410  	return resp.Code == 0
  3411  }
  3412  
  3413  type UpdateSpreadsheetSheetFilterReqBuilder struct {
  3414  	apiReq            *larkcore.ApiReq
  3415  	updateSheetFilter *UpdateSheetFilter
  3416  }
  3417  
  3418  func NewUpdateSpreadsheetSheetFilterReqBuilder() *UpdateSpreadsheetSheetFilterReqBuilder {
  3419  	builder := &UpdateSpreadsheetSheetFilterReqBuilder{}
  3420  	builder.apiReq = &larkcore.ApiReq{
  3421  		PathParams:  larkcore.PathParams{},
  3422  		QueryParams: larkcore.QueryParams{},
  3423  	}
  3424  	return builder
  3425  }
  3426  
  3427  // 表格 token
  3428  //
  3429  // 示例值:shtcnmBA\*****yGehy8
  3430  func (builder *UpdateSpreadsheetSheetFilterReqBuilder) SpreadsheetToken(spreadsheetToken string) *UpdateSpreadsheetSheetFilterReqBuilder {
  3431  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3432  	return builder
  3433  }
  3434  
  3435  // 子表 id
  3436  //
  3437  // 示例值:0b\**12
  3438  func (builder *UpdateSpreadsheetSheetFilterReqBuilder) SheetId(sheetId string) *UpdateSpreadsheetSheetFilterReqBuilder {
  3439  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3440  	return builder
  3441  }
  3442  
  3443  // 更新子表筛选范围中的列筛选条件。
  3444  func (builder *UpdateSpreadsheetSheetFilterReqBuilder) UpdateSheetFilter(updateSheetFilter *UpdateSheetFilter) *UpdateSpreadsheetSheetFilterReqBuilder {
  3445  	builder.updateSheetFilter = updateSheetFilter
  3446  	return builder
  3447  }
  3448  
  3449  func (builder *UpdateSpreadsheetSheetFilterReqBuilder) Build() *UpdateSpreadsheetSheetFilterReq {
  3450  	req := &UpdateSpreadsheetSheetFilterReq{}
  3451  	req.apiReq = &larkcore.ApiReq{}
  3452  	req.apiReq.PathParams = builder.apiReq.PathParams
  3453  	req.apiReq.Body = builder.updateSheetFilter
  3454  	return req
  3455  }
  3456  
  3457  type UpdateSpreadsheetSheetFilterReq struct {
  3458  	apiReq            *larkcore.ApiReq
  3459  	UpdateSheetFilter *UpdateSheetFilter `body:""`
  3460  }
  3461  
  3462  type UpdateSpreadsheetSheetFilterResp struct {
  3463  	*larkcore.ApiResp `json:"-"`
  3464  	larkcore.CodeError
  3465  }
  3466  
  3467  func (resp *UpdateSpreadsheetSheetFilterResp) Success() bool {
  3468  	return resp.Code == 0
  3469  }
  3470  
  3471  type CreateSpreadsheetSheetFilterViewReqBuilder struct {
  3472  	apiReq     *larkcore.ApiReq
  3473  	filterView *FilterView
  3474  }
  3475  
  3476  func NewCreateSpreadsheetSheetFilterViewReqBuilder() *CreateSpreadsheetSheetFilterViewReqBuilder {
  3477  	builder := &CreateSpreadsheetSheetFilterViewReqBuilder{}
  3478  	builder.apiReq = &larkcore.ApiReq{
  3479  		PathParams:  larkcore.PathParams{},
  3480  		QueryParams: larkcore.QueryParams{},
  3481  	}
  3482  	return builder
  3483  }
  3484  
  3485  // 表格 token
  3486  //
  3487  // 示例值:shtcnmBA*****yGehy8
  3488  func (builder *CreateSpreadsheetSheetFilterViewReqBuilder) SpreadsheetToken(spreadsheetToken string) *CreateSpreadsheetSheetFilterViewReqBuilder {
  3489  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3490  	return builder
  3491  }
  3492  
  3493  // 子表 id
  3494  //
  3495  // 示例值:0b**12
  3496  func (builder *CreateSpreadsheetSheetFilterViewReqBuilder) SheetId(sheetId string) *CreateSpreadsheetSheetFilterViewReqBuilder {
  3497  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3498  	return builder
  3499  }
  3500  
  3501  // 根据传入的参数创建一个筛选视图。Id 和 名字可选,不填的话会默认生成;range 必填。Id 长度为10,由 0-9、a-z、A-Z 组合生成。名字长度不超过100。单个子表内的筛选视图个数不超过 150。
  3502  func (builder *CreateSpreadsheetSheetFilterViewReqBuilder) FilterView(filterView *FilterView) *CreateSpreadsheetSheetFilterViewReqBuilder {
  3503  	builder.filterView = filterView
  3504  	return builder
  3505  }
  3506  
  3507  func (builder *CreateSpreadsheetSheetFilterViewReqBuilder) Build() *CreateSpreadsheetSheetFilterViewReq {
  3508  	req := &CreateSpreadsheetSheetFilterViewReq{}
  3509  	req.apiReq = &larkcore.ApiReq{}
  3510  	req.apiReq.PathParams = builder.apiReq.PathParams
  3511  	req.apiReq.Body = builder.filterView
  3512  	return req
  3513  }
  3514  
  3515  type CreateSpreadsheetSheetFilterViewReq struct {
  3516  	apiReq     *larkcore.ApiReq
  3517  	FilterView *FilterView `body:""`
  3518  }
  3519  
  3520  type CreateSpreadsheetSheetFilterViewRespData struct {
  3521  	FilterView *FilterView `json:"filter_view,omitempty"` // 创建的筛选视图的 id 、name、range
  3522  }
  3523  
  3524  type CreateSpreadsheetSheetFilterViewResp struct {
  3525  	*larkcore.ApiResp `json:"-"`
  3526  	larkcore.CodeError
  3527  	Data *CreateSpreadsheetSheetFilterViewRespData `json:"data"` // 业务数据
  3528  }
  3529  
  3530  func (resp *CreateSpreadsheetSheetFilterViewResp) Success() bool {
  3531  	return resp.Code == 0
  3532  }
  3533  
  3534  type DeleteSpreadsheetSheetFilterViewReqBuilder struct {
  3535  	apiReq *larkcore.ApiReq
  3536  }
  3537  
  3538  func NewDeleteSpreadsheetSheetFilterViewReqBuilder() *DeleteSpreadsheetSheetFilterViewReqBuilder {
  3539  	builder := &DeleteSpreadsheetSheetFilterViewReqBuilder{}
  3540  	builder.apiReq = &larkcore.ApiReq{
  3541  		PathParams:  larkcore.PathParams{},
  3542  		QueryParams: larkcore.QueryParams{},
  3543  	}
  3544  	return builder
  3545  }
  3546  
  3547  // 表格 token
  3548  //
  3549  // 示例值:shtcnmBA*****yGehy8
  3550  func (builder *DeleteSpreadsheetSheetFilterViewReqBuilder) SpreadsheetToken(spreadsheetToken string) *DeleteSpreadsheetSheetFilterViewReqBuilder {
  3551  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3552  	return builder
  3553  }
  3554  
  3555  // 子表 id
  3556  //
  3557  // 示例值:0b**12
  3558  func (builder *DeleteSpreadsheetSheetFilterViewReqBuilder) SheetId(sheetId string) *DeleteSpreadsheetSheetFilterViewReqBuilder {
  3559  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3560  	return builder
  3561  }
  3562  
  3563  // 筛选视图 id
  3564  //
  3565  // 示例值:pH9hbVcCXA
  3566  func (builder *DeleteSpreadsheetSheetFilterViewReqBuilder) FilterViewId(filterViewId string) *DeleteSpreadsheetSheetFilterViewReqBuilder {
  3567  	builder.apiReq.PathParams.Set("filter_view_id", fmt.Sprint(filterViewId))
  3568  	return builder
  3569  }
  3570  
  3571  func (builder *DeleteSpreadsheetSheetFilterViewReqBuilder) Build() *DeleteSpreadsheetSheetFilterViewReq {
  3572  	req := &DeleteSpreadsheetSheetFilterViewReq{}
  3573  	req.apiReq = &larkcore.ApiReq{}
  3574  	req.apiReq.PathParams = builder.apiReq.PathParams
  3575  	return req
  3576  }
  3577  
  3578  type DeleteSpreadsheetSheetFilterViewReq struct {
  3579  	apiReq *larkcore.ApiReq
  3580  }
  3581  
  3582  type DeleteSpreadsheetSheetFilterViewResp struct {
  3583  	*larkcore.ApiResp `json:"-"`
  3584  	larkcore.CodeError
  3585  }
  3586  
  3587  func (resp *DeleteSpreadsheetSheetFilterViewResp) Success() bool {
  3588  	return resp.Code == 0
  3589  }
  3590  
  3591  type GetSpreadsheetSheetFilterViewReqBuilder struct {
  3592  	apiReq *larkcore.ApiReq
  3593  }
  3594  
  3595  func NewGetSpreadsheetSheetFilterViewReqBuilder() *GetSpreadsheetSheetFilterViewReqBuilder {
  3596  	builder := &GetSpreadsheetSheetFilterViewReqBuilder{}
  3597  	builder.apiReq = &larkcore.ApiReq{
  3598  		PathParams:  larkcore.PathParams{},
  3599  		QueryParams: larkcore.QueryParams{},
  3600  	}
  3601  	return builder
  3602  }
  3603  
  3604  // 表格 token
  3605  //
  3606  // 示例值:shtcnmBA*****yGehy8
  3607  func (builder *GetSpreadsheetSheetFilterViewReqBuilder) SpreadsheetToken(spreadsheetToken string) *GetSpreadsheetSheetFilterViewReqBuilder {
  3608  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3609  	return builder
  3610  }
  3611  
  3612  // 子表 id
  3613  //
  3614  // 示例值:0b**12
  3615  func (builder *GetSpreadsheetSheetFilterViewReqBuilder) SheetId(sheetId string) *GetSpreadsheetSheetFilterViewReqBuilder {
  3616  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3617  	return builder
  3618  }
  3619  
  3620  // 筛选视图 id
  3621  //
  3622  // 示例值:pH9hbVcCXA
  3623  func (builder *GetSpreadsheetSheetFilterViewReqBuilder) FilterViewId(filterViewId string) *GetSpreadsheetSheetFilterViewReqBuilder {
  3624  	builder.apiReq.PathParams.Set("filter_view_id", fmt.Sprint(filterViewId))
  3625  	return builder
  3626  }
  3627  
  3628  func (builder *GetSpreadsheetSheetFilterViewReqBuilder) Build() *GetSpreadsheetSheetFilterViewReq {
  3629  	req := &GetSpreadsheetSheetFilterViewReq{}
  3630  	req.apiReq = &larkcore.ApiReq{}
  3631  	req.apiReq.PathParams = builder.apiReq.PathParams
  3632  	return req
  3633  }
  3634  
  3635  type GetSpreadsheetSheetFilterViewReq struct {
  3636  	apiReq *larkcore.ApiReq
  3637  }
  3638  
  3639  type GetSpreadsheetSheetFilterViewRespData struct {
  3640  	FilterView *FilterView `json:"filter_view,omitempty"` // 筛选视图信息,包括 id、name、range
  3641  }
  3642  
  3643  type GetSpreadsheetSheetFilterViewResp struct {
  3644  	*larkcore.ApiResp `json:"-"`
  3645  	larkcore.CodeError
  3646  	Data *GetSpreadsheetSheetFilterViewRespData `json:"data"` // 业务数据
  3647  }
  3648  
  3649  func (resp *GetSpreadsheetSheetFilterViewResp) Success() bool {
  3650  	return resp.Code == 0
  3651  }
  3652  
  3653  type PatchSpreadsheetSheetFilterViewReqBuilder struct {
  3654  	apiReq     *larkcore.ApiReq
  3655  	filterView *FilterView
  3656  }
  3657  
  3658  func NewPatchSpreadsheetSheetFilterViewReqBuilder() *PatchSpreadsheetSheetFilterViewReqBuilder {
  3659  	builder := &PatchSpreadsheetSheetFilterViewReqBuilder{}
  3660  	builder.apiReq = &larkcore.ApiReq{
  3661  		PathParams:  larkcore.PathParams{},
  3662  		QueryParams: larkcore.QueryParams{},
  3663  	}
  3664  	return builder
  3665  }
  3666  
  3667  // 表格 token
  3668  //
  3669  // 示例值:shtcnmBA*****yGehy8
  3670  func (builder *PatchSpreadsheetSheetFilterViewReqBuilder) SpreadsheetToken(spreadsheetToken string) *PatchSpreadsheetSheetFilterViewReqBuilder {
  3671  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3672  	return builder
  3673  }
  3674  
  3675  // 子表 id
  3676  //
  3677  // 示例值:0b**12
  3678  func (builder *PatchSpreadsheetSheetFilterViewReqBuilder) SheetId(sheetId string) *PatchSpreadsheetSheetFilterViewReqBuilder {
  3679  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3680  	return builder
  3681  }
  3682  
  3683  // 筛选视图 id
  3684  //
  3685  // 示例值:pH9hbVcCXA
  3686  func (builder *PatchSpreadsheetSheetFilterViewReqBuilder) FilterViewId(filterViewId string) *PatchSpreadsheetSheetFilterViewReqBuilder {
  3687  	builder.apiReq.PathParams.Set("filter_view_id", fmt.Sprint(filterViewId))
  3688  	return builder
  3689  }
  3690  
  3691  // 更新筛选视图的名字或者筛选范围。名字长度不超过100,不能重复即子表内唯一;筛选范围不超过子表的最大范围。
  3692  func (builder *PatchSpreadsheetSheetFilterViewReqBuilder) FilterView(filterView *FilterView) *PatchSpreadsheetSheetFilterViewReqBuilder {
  3693  	builder.filterView = filterView
  3694  	return builder
  3695  }
  3696  
  3697  func (builder *PatchSpreadsheetSheetFilterViewReqBuilder) Build() *PatchSpreadsheetSheetFilterViewReq {
  3698  	req := &PatchSpreadsheetSheetFilterViewReq{}
  3699  	req.apiReq = &larkcore.ApiReq{}
  3700  	req.apiReq.PathParams = builder.apiReq.PathParams
  3701  	req.apiReq.Body = builder.filterView
  3702  	return req
  3703  }
  3704  
  3705  type PatchSpreadsheetSheetFilterViewReq struct {
  3706  	apiReq     *larkcore.ApiReq
  3707  	FilterView *FilterView `body:""`
  3708  }
  3709  
  3710  type PatchSpreadsheetSheetFilterViewRespData struct {
  3711  	FilterView *FilterView `json:"filter_view,omitempty"` // 更新后的筛选视图的 id 、name、range
  3712  }
  3713  
  3714  type PatchSpreadsheetSheetFilterViewResp struct {
  3715  	*larkcore.ApiResp `json:"-"`
  3716  	larkcore.CodeError
  3717  	Data *PatchSpreadsheetSheetFilterViewRespData `json:"data"` // 业务数据
  3718  }
  3719  
  3720  func (resp *PatchSpreadsheetSheetFilterViewResp) Success() bool {
  3721  	return resp.Code == 0
  3722  }
  3723  
  3724  type QuerySpreadsheetSheetFilterViewReqBuilder struct {
  3725  	apiReq *larkcore.ApiReq
  3726  }
  3727  
  3728  func NewQuerySpreadsheetSheetFilterViewReqBuilder() *QuerySpreadsheetSheetFilterViewReqBuilder {
  3729  	builder := &QuerySpreadsheetSheetFilterViewReqBuilder{}
  3730  	builder.apiReq = &larkcore.ApiReq{
  3731  		PathParams:  larkcore.PathParams{},
  3732  		QueryParams: larkcore.QueryParams{},
  3733  	}
  3734  	return builder
  3735  }
  3736  
  3737  // 表格 token
  3738  //
  3739  // 示例值:shtcnmBA*****yGehy8
  3740  func (builder *QuerySpreadsheetSheetFilterViewReqBuilder) SpreadsheetToken(spreadsheetToken string) *QuerySpreadsheetSheetFilterViewReqBuilder {
  3741  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3742  	return builder
  3743  }
  3744  
  3745  // 子表 id
  3746  //
  3747  // 示例值:0b**12
  3748  func (builder *QuerySpreadsheetSheetFilterViewReqBuilder) SheetId(sheetId string) *QuerySpreadsheetSheetFilterViewReqBuilder {
  3749  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3750  	return builder
  3751  }
  3752  
  3753  func (builder *QuerySpreadsheetSheetFilterViewReqBuilder) Build() *QuerySpreadsheetSheetFilterViewReq {
  3754  	req := &QuerySpreadsheetSheetFilterViewReq{}
  3755  	req.apiReq = &larkcore.ApiReq{}
  3756  	req.apiReq.PathParams = builder.apiReq.PathParams
  3757  	return req
  3758  }
  3759  
  3760  type QuerySpreadsheetSheetFilterViewReq struct {
  3761  	apiReq *larkcore.ApiReq
  3762  }
  3763  
  3764  type QuerySpreadsheetSheetFilterViewRespData struct {
  3765  	Items []*FilterView `json:"items,omitempty"` // 子表的所有筛选视图信息,id、name、range
  3766  }
  3767  
  3768  type QuerySpreadsheetSheetFilterViewResp struct {
  3769  	*larkcore.ApiResp `json:"-"`
  3770  	larkcore.CodeError
  3771  	Data *QuerySpreadsheetSheetFilterViewRespData `json:"data"` // 业务数据
  3772  }
  3773  
  3774  func (resp *QuerySpreadsheetSheetFilterViewResp) Success() bool {
  3775  	return resp.Code == 0
  3776  }
  3777  
  3778  type CreateSpreadsheetSheetFilterViewConditionReqBuilder struct {
  3779  	apiReq              *larkcore.ApiReq
  3780  	filterViewCondition *FilterViewCondition
  3781  }
  3782  
  3783  func NewCreateSpreadsheetSheetFilterViewConditionReqBuilder() *CreateSpreadsheetSheetFilterViewConditionReqBuilder {
  3784  	builder := &CreateSpreadsheetSheetFilterViewConditionReqBuilder{}
  3785  	builder.apiReq = &larkcore.ApiReq{
  3786  		PathParams:  larkcore.PathParams{},
  3787  		QueryParams: larkcore.QueryParams{},
  3788  	}
  3789  	return builder
  3790  }
  3791  
  3792  // 表格 token
  3793  //
  3794  // 示例值:shtcnmBA*****yGehy8
  3795  func (builder *CreateSpreadsheetSheetFilterViewConditionReqBuilder) SpreadsheetToken(spreadsheetToken string) *CreateSpreadsheetSheetFilterViewConditionReqBuilder {
  3796  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3797  	return builder
  3798  }
  3799  
  3800  // 子表 id
  3801  //
  3802  // 示例值:0b**12
  3803  func (builder *CreateSpreadsheetSheetFilterViewConditionReqBuilder) SheetId(sheetId string) *CreateSpreadsheetSheetFilterViewConditionReqBuilder {
  3804  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3805  	return builder
  3806  }
  3807  
  3808  // 筛选视图 id
  3809  //
  3810  // 示例值:pH9hbVcCXA
  3811  func (builder *CreateSpreadsheetSheetFilterViewConditionReqBuilder) FilterViewId(filterViewId string) *CreateSpreadsheetSheetFilterViewConditionReqBuilder {
  3812  	builder.apiReq.PathParams.Set("filter_view_id", fmt.Sprint(filterViewId))
  3813  	return builder
  3814  }
  3815  
  3816  // 在筛选视图的筛选范围的某一列创建筛选条件。
  3817  func (builder *CreateSpreadsheetSheetFilterViewConditionReqBuilder) FilterViewCondition(filterViewCondition *FilterViewCondition) *CreateSpreadsheetSheetFilterViewConditionReqBuilder {
  3818  	builder.filterViewCondition = filterViewCondition
  3819  	return builder
  3820  }
  3821  
  3822  func (builder *CreateSpreadsheetSheetFilterViewConditionReqBuilder) Build() *CreateSpreadsheetSheetFilterViewConditionReq {
  3823  	req := &CreateSpreadsheetSheetFilterViewConditionReq{}
  3824  	req.apiReq = &larkcore.ApiReq{}
  3825  	req.apiReq.PathParams = builder.apiReq.PathParams
  3826  	req.apiReq.Body = builder.filterViewCondition
  3827  	return req
  3828  }
  3829  
  3830  type CreateSpreadsheetSheetFilterViewConditionReq struct {
  3831  	apiReq              *larkcore.ApiReq
  3832  	FilterViewCondition *FilterViewCondition `body:""`
  3833  }
  3834  
  3835  type CreateSpreadsheetSheetFilterViewConditionRespData struct {
  3836  	Condition *FilterViewCondition `json:"condition,omitempty"` // 创建的筛选条件
  3837  }
  3838  
  3839  type CreateSpreadsheetSheetFilterViewConditionResp struct {
  3840  	*larkcore.ApiResp `json:"-"`
  3841  	larkcore.CodeError
  3842  	Data *CreateSpreadsheetSheetFilterViewConditionRespData `json:"data"` // 业务数据
  3843  }
  3844  
  3845  func (resp *CreateSpreadsheetSheetFilterViewConditionResp) Success() bool {
  3846  	return resp.Code == 0
  3847  }
  3848  
  3849  type DeleteSpreadsheetSheetFilterViewConditionReqBuilder struct {
  3850  	apiReq *larkcore.ApiReq
  3851  }
  3852  
  3853  func NewDeleteSpreadsheetSheetFilterViewConditionReqBuilder() *DeleteSpreadsheetSheetFilterViewConditionReqBuilder {
  3854  	builder := &DeleteSpreadsheetSheetFilterViewConditionReqBuilder{}
  3855  	builder.apiReq = &larkcore.ApiReq{
  3856  		PathParams:  larkcore.PathParams{},
  3857  		QueryParams: larkcore.QueryParams{},
  3858  	}
  3859  	return builder
  3860  }
  3861  
  3862  // 表格 token
  3863  //
  3864  // 示例值:shtcnmBA*****yGehy8
  3865  func (builder *DeleteSpreadsheetSheetFilterViewConditionReqBuilder) SpreadsheetToken(spreadsheetToken string) *DeleteSpreadsheetSheetFilterViewConditionReqBuilder {
  3866  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3867  	return builder
  3868  }
  3869  
  3870  // 子表 id
  3871  //
  3872  // 示例值:0b**12
  3873  func (builder *DeleteSpreadsheetSheetFilterViewConditionReqBuilder) SheetId(sheetId string) *DeleteSpreadsheetSheetFilterViewConditionReqBuilder {
  3874  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3875  	return builder
  3876  }
  3877  
  3878  // 筛选视图 id
  3879  //
  3880  // 示例值:pH9hbVcCXA
  3881  func (builder *DeleteSpreadsheetSheetFilterViewConditionReqBuilder) FilterViewId(filterViewId string) *DeleteSpreadsheetSheetFilterViewConditionReqBuilder {
  3882  	builder.apiReq.PathParams.Set("filter_view_id", fmt.Sprint(filterViewId))
  3883  	return builder
  3884  }
  3885  
  3886  // 筛选范围内的某列字母号
  3887  //
  3888  // 示例值:E
  3889  func (builder *DeleteSpreadsheetSheetFilterViewConditionReqBuilder) ConditionId(conditionId string) *DeleteSpreadsheetSheetFilterViewConditionReqBuilder {
  3890  	builder.apiReq.PathParams.Set("condition_id", fmt.Sprint(conditionId))
  3891  	return builder
  3892  }
  3893  
  3894  func (builder *DeleteSpreadsheetSheetFilterViewConditionReqBuilder) Build() *DeleteSpreadsheetSheetFilterViewConditionReq {
  3895  	req := &DeleteSpreadsheetSheetFilterViewConditionReq{}
  3896  	req.apiReq = &larkcore.ApiReq{}
  3897  	req.apiReq.PathParams = builder.apiReq.PathParams
  3898  	return req
  3899  }
  3900  
  3901  type DeleteSpreadsheetSheetFilterViewConditionReq struct {
  3902  	apiReq *larkcore.ApiReq
  3903  }
  3904  
  3905  type DeleteSpreadsheetSheetFilterViewConditionResp struct {
  3906  	*larkcore.ApiResp `json:"-"`
  3907  	larkcore.CodeError
  3908  }
  3909  
  3910  func (resp *DeleteSpreadsheetSheetFilterViewConditionResp) Success() bool {
  3911  	return resp.Code == 0
  3912  }
  3913  
  3914  type GetSpreadsheetSheetFilterViewConditionReqBuilder struct {
  3915  	apiReq *larkcore.ApiReq
  3916  }
  3917  
  3918  func NewGetSpreadsheetSheetFilterViewConditionReqBuilder() *GetSpreadsheetSheetFilterViewConditionReqBuilder {
  3919  	builder := &GetSpreadsheetSheetFilterViewConditionReqBuilder{}
  3920  	builder.apiReq = &larkcore.ApiReq{
  3921  		PathParams:  larkcore.PathParams{},
  3922  		QueryParams: larkcore.QueryParams{},
  3923  	}
  3924  	return builder
  3925  }
  3926  
  3927  // 表格 token
  3928  //
  3929  // 示例值:shtcnmBA*****yGehy8
  3930  func (builder *GetSpreadsheetSheetFilterViewConditionReqBuilder) SpreadsheetToken(spreadsheetToken string) *GetSpreadsheetSheetFilterViewConditionReqBuilder {
  3931  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  3932  	return builder
  3933  }
  3934  
  3935  // 子表 id
  3936  //
  3937  // 示例值:0b**12
  3938  func (builder *GetSpreadsheetSheetFilterViewConditionReqBuilder) SheetId(sheetId string) *GetSpreadsheetSheetFilterViewConditionReqBuilder {
  3939  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  3940  	return builder
  3941  }
  3942  
  3943  // 筛选视图 id
  3944  //
  3945  // 示例值:pH9hbVcCXA
  3946  func (builder *GetSpreadsheetSheetFilterViewConditionReqBuilder) FilterViewId(filterViewId string) *GetSpreadsheetSheetFilterViewConditionReqBuilder {
  3947  	builder.apiReq.PathParams.Set("filter_view_id", fmt.Sprint(filterViewId))
  3948  	return builder
  3949  }
  3950  
  3951  // 需要查询筛选条件的列字母号
  3952  //
  3953  // 示例值:E
  3954  func (builder *GetSpreadsheetSheetFilterViewConditionReqBuilder) ConditionId(conditionId string) *GetSpreadsheetSheetFilterViewConditionReqBuilder {
  3955  	builder.apiReq.PathParams.Set("condition_id", fmt.Sprint(conditionId))
  3956  	return builder
  3957  }
  3958  
  3959  func (builder *GetSpreadsheetSheetFilterViewConditionReqBuilder) Build() *GetSpreadsheetSheetFilterViewConditionReq {
  3960  	req := &GetSpreadsheetSheetFilterViewConditionReq{}
  3961  	req.apiReq = &larkcore.ApiReq{}
  3962  	req.apiReq.PathParams = builder.apiReq.PathParams
  3963  	return req
  3964  }
  3965  
  3966  type GetSpreadsheetSheetFilterViewConditionReq struct {
  3967  	apiReq *larkcore.ApiReq
  3968  }
  3969  
  3970  type GetSpreadsheetSheetFilterViewConditionRespData struct {
  3971  	Condition *FilterViewCondition `json:"condition,omitempty"` // 筛选的条件
  3972  }
  3973  
  3974  type GetSpreadsheetSheetFilterViewConditionResp struct {
  3975  	*larkcore.ApiResp `json:"-"`
  3976  	larkcore.CodeError
  3977  	Data *GetSpreadsheetSheetFilterViewConditionRespData `json:"data"` // 业务数据
  3978  }
  3979  
  3980  func (resp *GetSpreadsheetSheetFilterViewConditionResp) Success() bool {
  3981  	return resp.Code == 0
  3982  }
  3983  
  3984  type QuerySpreadsheetSheetFilterViewConditionReqBuilder struct {
  3985  	apiReq *larkcore.ApiReq
  3986  }
  3987  
  3988  func NewQuerySpreadsheetSheetFilterViewConditionReqBuilder() *QuerySpreadsheetSheetFilterViewConditionReqBuilder {
  3989  	builder := &QuerySpreadsheetSheetFilterViewConditionReqBuilder{}
  3990  	builder.apiReq = &larkcore.ApiReq{
  3991  		PathParams:  larkcore.PathParams{},
  3992  		QueryParams: larkcore.QueryParams{},
  3993  	}
  3994  	return builder
  3995  }
  3996  
  3997  // 表格 token
  3998  //
  3999  // 示例值:shtcnmBA*****yGehy8
  4000  func (builder *QuerySpreadsheetSheetFilterViewConditionReqBuilder) SpreadsheetToken(spreadsheetToken string) *QuerySpreadsheetSheetFilterViewConditionReqBuilder {
  4001  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  4002  	return builder
  4003  }
  4004  
  4005  // 子表 id
  4006  //
  4007  // 示例值:0b**12
  4008  func (builder *QuerySpreadsheetSheetFilterViewConditionReqBuilder) SheetId(sheetId string) *QuerySpreadsheetSheetFilterViewConditionReqBuilder {
  4009  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  4010  	return builder
  4011  }
  4012  
  4013  // 筛选视图 id
  4014  //
  4015  // 示例值:pH9hbVcCXA
  4016  func (builder *QuerySpreadsheetSheetFilterViewConditionReqBuilder) FilterViewId(filterViewId string) *QuerySpreadsheetSheetFilterViewConditionReqBuilder {
  4017  	builder.apiReq.PathParams.Set("filter_view_id", fmt.Sprint(filterViewId))
  4018  	return builder
  4019  }
  4020  
  4021  func (builder *QuerySpreadsheetSheetFilterViewConditionReqBuilder) Build() *QuerySpreadsheetSheetFilterViewConditionReq {
  4022  	req := &QuerySpreadsheetSheetFilterViewConditionReq{}
  4023  	req.apiReq = &larkcore.ApiReq{}
  4024  	req.apiReq.PathParams = builder.apiReq.PathParams
  4025  	return req
  4026  }
  4027  
  4028  type QuerySpreadsheetSheetFilterViewConditionReq struct {
  4029  	apiReq *larkcore.ApiReq
  4030  }
  4031  
  4032  type QuerySpreadsheetSheetFilterViewConditionRespData struct {
  4033  	Items []*FilterViewCondition `json:"items,omitempty"` // 筛选视图设置的所有筛选条件
  4034  }
  4035  
  4036  type QuerySpreadsheetSheetFilterViewConditionResp struct {
  4037  	*larkcore.ApiResp `json:"-"`
  4038  	larkcore.CodeError
  4039  	Data *QuerySpreadsheetSheetFilterViewConditionRespData `json:"data"` // 业务数据
  4040  }
  4041  
  4042  func (resp *QuerySpreadsheetSheetFilterViewConditionResp) Success() bool {
  4043  	return resp.Code == 0
  4044  }
  4045  
  4046  type UpdateSpreadsheetSheetFilterViewConditionReqBuilder struct {
  4047  	apiReq              *larkcore.ApiReq
  4048  	filterViewCondition *FilterViewCondition
  4049  }
  4050  
  4051  func NewUpdateSpreadsheetSheetFilterViewConditionReqBuilder() *UpdateSpreadsheetSheetFilterViewConditionReqBuilder {
  4052  	builder := &UpdateSpreadsheetSheetFilterViewConditionReqBuilder{}
  4053  	builder.apiReq = &larkcore.ApiReq{
  4054  		PathParams:  larkcore.PathParams{},
  4055  		QueryParams: larkcore.QueryParams{},
  4056  	}
  4057  	return builder
  4058  }
  4059  
  4060  // 表格 token
  4061  //
  4062  // 示例值:shtcnmBA*****yGehy8
  4063  func (builder *UpdateSpreadsheetSheetFilterViewConditionReqBuilder) SpreadsheetToken(spreadsheetToken string) *UpdateSpreadsheetSheetFilterViewConditionReqBuilder {
  4064  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  4065  	return builder
  4066  }
  4067  
  4068  // 子表 id
  4069  //
  4070  // 示例值:0b**12
  4071  func (builder *UpdateSpreadsheetSheetFilterViewConditionReqBuilder) SheetId(sheetId string) *UpdateSpreadsheetSheetFilterViewConditionReqBuilder {
  4072  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  4073  	return builder
  4074  }
  4075  
  4076  // 筛选视图 id
  4077  //
  4078  // 示例值:pH9hbVcCXA
  4079  func (builder *UpdateSpreadsheetSheetFilterViewConditionReqBuilder) FilterViewId(filterViewId string) *UpdateSpreadsheetSheetFilterViewConditionReqBuilder {
  4080  	builder.apiReq.PathParams.Set("filter_view_id", fmt.Sprint(filterViewId))
  4081  	return builder
  4082  }
  4083  
  4084  // 列字母号
  4085  //
  4086  // 示例值:E
  4087  func (builder *UpdateSpreadsheetSheetFilterViewConditionReqBuilder) ConditionId(conditionId string) *UpdateSpreadsheetSheetFilterViewConditionReqBuilder {
  4088  	builder.apiReq.PathParams.Set("condition_id", fmt.Sprint(conditionId))
  4089  	return builder
  4090  }
  4091  
  4092  // 更新筛选视图范围的某列的筛选条件,condition id 即为列的字母号。
  4093  func (builder *UpdateSpreadsheetSheetFilterViewConditionReqBuilder) FilterViewCondition(filterViewCondition *FilterViewCondition) *UpdateSpreadsheetSheetFilterViewConditionReqBuilder {
  4094  	builder.filterViewCondition = filterViewCondition
  4095  	return builder
  4096  }
  4097  
  4098  func (builder *UpdateSpreadsheetSheetFilterViewConditionReqBuilder) Build() *UpdateSpreadsheetSheetFilterViewConditionReq {
  4099  	req := &UpdateSpreadsheetSheetFilterViewConditionReq{}
  4100  	req.apiReq = &larkcore.ApiReq{}
  4101  	req.apiReq.PathParams = builder.apiReq.PathParams
  4102  	req.apiReq.Body = builder.filterViewCondition
  4103  	return req
  4104  }
  4105  
  4106  type UpdateSpreadsheetSheetFilterViewConditionReq struct {
  4107  	apiReq              *larkcore.ApiReq
  4108  	FilterViewCondition *FilterViewCondition `body:""`
  4109  }
  4110  
  4111  type UpdateSpreadsheetSheetFilterViewConditionRespData struct {
  4112  	Condition *FilterViewCondition `json:"condition,omitempty"` // 更新后的筛选条件
  4113  }
  4114  
  4115  type UpdateSpreadsheetSheetFilterViewConditionResp struct {
  4116  	*larkcore.ApiResp `json:"-"`
  4117  	larkcore.CodeError
  4118  	Data *UpdateSpreadsheetSheetFilterViewConditionRespData `json:"data"` // 业务数据
  4119  }
  4120  
  4121  func (resp *UpdateSpreadsheetSheetFilterViewConditionResp) Success() bool {
  4122  	return resp.Code == 0
  4123  }
  4124  
  4125  type CreateSpreadsheetSheetFloatImageReqBuilder struct {
  4126  	apiReq     *larkcore.ApiReq
  4127  	floatImage *FloatImage
  4128  }
  4129  
  4130  func NewCreateSpreadsheetSheetFloatImageReqBuilder() *CreateSpreadsheetSheetFloatImageReqBuilder {
  4131  	builder := &CreateSpreadsheetSheetFloatImageReqBuilder{}
  4132  	builder.apiReq = &larkcore.ApiReq{
  4133  		PathParams:  larkcore.PathParams{},
  4134  		QueryParams: larkcore.QueryParams{},
  4135  	}
  4136  	return builder
  4137  }
  4138  
  4139  // 表格 token
  4140  //
  4141  // 示例值:shtcnmBA*****yGehy8
  4142  func (builder *CreateSpreadsheetSheetFloatImageReqBuilder) SpreadsheetToken(spreadsheetToken string) *CreateSpreadsheetSheetFloatImageReqBuilder {
  4143  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  4144  	return builder
  4145  }
  4146  
  4147  // 子表 id
  4148  //
  4149  // 示例值:0b**12
  4150  func (builder *CreateSpreadsheetSheetFloatImageReqBuilder) SheetId(sheetId string) *CreateSpreadsheetSheetFloatImageReqBuilder {
  4151  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  4152  	return builder
  4153  }
  4154  
  4155  // 根据传入的参数创建一张浮动图片。Float_image_token ([上传图片至表格后得到](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/media/upload_all))和range(只支持一个单元格) 必填。Float_image_id 可选,不填的话会默认生成,长度为10,由 0-9、a-z、A-Z 组合生成。表格内不重复的图片(浮动图片+单元格图片)总数不超过4000。width 和 height 为图片展示的宽高,可选,不填的话会使用图片的真实宽高。offset_x 和 offset_y 为图片左上角距离所在单元格左上角的偏移,可选,默认为 0。
  4156  func (builder *CreateSpreadsheetSheetFloatImageReqBuilder) FloatImage(floatImage *FloatImage) *CreateSpreadsheetSheetFloatImageReqBuilder {
  4157  	builder.floatImage = floatImage
  4158  	return builder
  4159  }
  4160  
  4161  func (builder *CreateSpreadsheetSheetFloatImageReqBuilder) Build() *CreateSpreadsheetSheetFloatImageReq {
  4162  	req := &CreateSpreadsheetSheetFloatImageReq{}
  4163  	req.apiReq = &larkcore.ApiReq{}
  4164  	req.apiReq.PathParams = builder.apiReq.PathParams
  4165  	req.apiReq.Body = builder.floatImage
  4166  	return req
  4167  }
  4168  
  4169  type CreateSpreadsheetSheetFloatImageReq struct {
  4170  	apiReq     *larkcore.ApiReq
  4171  	FloatImage *FloatImage `body:""`
  4172  }
  4173  
  4174  type CreateSpreadsheetSheetFloatImageRespData struct {
  4175  	FloatImage *FloatImage `json:"float_image,omitempty"` // 浮动图片返回值
  4176  }
  4177  
  4178  type CreateSpreadsheetSheetFloatImageResp struct {
  4179  	*larkcore.ApiResp `json:"-"`
  4180  	larkcore.CodeError
  4181  	Data *CreateSpreadsheetSheetFloatImageRespData `json:"data"` // 业务数据
  4182  }
  4183  
  4184  func (resp *CreateSpreadsheetSheetFloatImageResp) Success() bool {
  4185  	return resp.Code == 0
  4186  }
  4187  
  4188  type DeleteSpreadsheetSheetFloatImageReqBuilder struct {
  4189  	apiReq *larkcore.ApiReq
  4190  }
  4191  
  4192  func NewDeleteSpreadsheetSheetFloatImageReqBuilder() *DeleteSpreadsheetSheetFloatImageReqBuilder {
  4193  	builder := &DeleteSpreadsheetSheetFloatImageReqBuilder{}
  4194  	builder.apiReq = &larkcore.ApiReq{
  4195  		PathParams:  larkcore.PathParams{},
  4196  		QueryParams: larkcore.QueryParams{},
  4197  	}
  4198  	return builder
  4199  }
  4200  
  4201  // 表格 token
  4202  //
  4203  // 示例值:shtcnmBA*****yGehy8
  4204  func (builder *DeleteSpreadsheetSheetFloatImageReqBuilder) SpreadsheetToken(spreadsheetToken string) *DeleteSpreadsheetSheetFloatImageReqBuilder {
  4205  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  4206  	return builder
  4207  }
  4208  
  4209  // 子表 id
  4210  //
  4211  // 示例值:0b**12
  4212  func (builder *DeleteSpreadsheetSheetFloatImageReqBuilder) SheetId(sheetId string) *DeleteSpreadsheetSheetFloatImageReqBuilder {
  4213  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  4214  	return builder
  4215  }
  4216  
  4217  // 浮动图片 id
  4218  //
  4219  // 示例值:ye06SS14ph
  4220  func (builder *DeleteSpreadsheetSheetFloatImageReqBuilder) FloatImageId(floatImageId string) *DeleteSpreadsheetSheetFloatImageReqBuilder {
  4221  	builder.apiReq.PathParams.Set("float_image_id", fmt.Sprint(floatImageId))
  4222  	return builder
  4223  }
  4224  
  4225  func (builder *DeleteSpreadsheetSheetFloatImageReqBuilder) Build() *DeleteSpreadsheetSheetFloatImageReq {
  4226  	req := &DeleteSpreadsheetSheetFloatImageReq{}
  4227  	req.apiReq = &larkcore.ApiReq{}
  4228  	req.apiReq.PathParams = builder.apiReq.PathParams
  4229  	return req
  4230  }
  4231  
  4232  type DeleteSpreadsheetSheetFloatImageReq struct {
  4233  	apiReq *larkcore.ApiReq
  4234  }
  4235  
  4236  type DeleteSpreadsheetSheetFloatImageResp struct {
  4237  	*larkcore.ApiResp `json:"-"`
  4238  	larkcore.CodeError
  4239  }
  4240  
  4241  func (resp *DeleteSpreadsheetSheetFloatImageResp) Success() bool {
  4242  	return resp.Code == 0
  4243  }
  4244  
  4245  type GetSpreadsheetSheetFloatImageReqBuilder struct {
  4246  	apiReq *larkcore.ApiReq
  4247  }
  4248  
  4249  func NewGetSpreadsheetSheetFloatImageReqBuilder() *GetSpreadsheetSheetFloatImageReqBuilder {
  4250  	builder := &GetSpreadsheetSheetFloatImageReqBuilder{}
  4251  	builder.apiReq = &larkcore.ApiReq{
  4252  		PathParams:  larkcore.PathParams{},
  4253  		QueryParams: larkcore.QueryParams{},
  4254  	}
  4255  	return builder
  4256  }
  4257  
  4258  // 表格 token
  4259  //
  4260  // 示例值:shtcnmBA*****yGehy8
  4261  func (builder *GetSpreadsheetSheetFloatImageReqBuilder) SpreadsheetToken(spreadsheetToken string) *GetSpreadsheetSheetFloatImageReqBuilder {
  4262  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  4263  	return builder
  4264  }
  4265  
  4266  // 子表 id
  4267  //
  4268  // 示例值:0b**12
  4269  func (builder *GetSpreadsheetSheetFloatImageReqBuilder) SheetId(sheetId string) *GetSpreadsheetSheetFloatImageReqBuilder {
  4270  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  4271  	return builder
  4272  }
  4273  
  4274  // 浮动图片 id
  4275  //
  4276  // 示例值:ye06SS14ph
  4277  func (builder *GetSpreadsheetSheetFloatImageReqBuilder) FloatImageId(floatImageId string) *GetSpreadsheetSheetFloatImageReqBuilder {
  4278  	builder.apiReq.PathParams.Set("float_image_id", fmt.Sprint(floatImageId))
  4279  	return builder
  4280  }
  4281  
  4282  func (builder *GetSpreadsheetSheetFloatImageReqBuilder) Build() *GetSpreadsheetSheetFloatImageReq {
  4283  	req := &GetSpreadsheetSheetFloatImageReq{}
  4284  	req.apiReq = &larkcore.ApiReq{}
  4285  	req.apiReq.PathParams = builder.apiReq.PathParams
  4286  	return req
  4287  }
  4288  
  4289  type GetSpreadsheetSheetFloatImageReq struct {
  4290  	apiReq *larkcore.ApiReq
  4291  }
  4292  
  4293  type GetSpreadsheetSheetFloatImageRespData struct {
  4294  	FloatImage *FloatImage `json:"float_image,omitempty"` // 浮动图片信息
  4295  }
  4296  
  4297  type GetSpreadsheetSheetFloatImageResp struct {
  4298  	*larkcore.ApiResp `json:"-"`
  4299  	larkcore.CodeError
  4300  	Data *GetSpreadsheetSheetFloatImageRespData `json:"data"` // 业务数据
  4301  }
  4302  
  4303  func (resp *GetSpreadsheetSheetFloatImageResp) Success() bool {
  4304  	return resp.Code == 0
  4305  }
  4306  
  4307  type PatchSpreadsheetSheetFloatImageReqBuilder struct {
  4308  	apiReq     *larkcore.ApiReq
  4309  	floatImage *FloatImage
  4310  }
  4311  
  4312  func NewPatchSpreadsheetSheetFloatImageReqBuilder() *PatchSpreadsheetSheetFloatImageReqBuilder {
  4313  	builder := &PatchSpreadsheetSheetFloatImageReqBuilder{}
  4314  	builder.apiReq = &larkcore.ApiReq{
  4315  		PathParams:  larkcore.PathParams{},
  4316  		QueryParams: larkcore.QueryParams{},
  4317  	}
  4318  	return builder
  4319  }
  4320  
  4321  // 表格 token
  4322  //
  4323  // 示例值:shtcnmBA*****yGehy8
  4324  func (builder *PatchSpreadsheetSheetFloatImageReqBuilder) SpreadsheetToken(spreadsheetToken string) *PatchSpreadsheetSheetFloatImageReqBuilder {
  4325  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  4326  	return builder
  4327  }
  4328  
  4329  // 子表 id
  4330  //
  4331  // 示例值:0b**12
  4332  func (builder *PatchSpreadsheetSheetFloatImageReqBuilder) SheetId(sheetId string) *PatchSpreadsheetSheetFloatImageReqBuilder {
  4333  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  4334  	return builder
  4335  }
  4336  
  4337  // 浮动图片 id
  4338  //
  4339  // 示例值:ye06SS14ph
  4340  func (builder *PatchSpreadsheetSheetFloatImageReqBuilder) FloatImageId(floatImageId string) *PatchSpreadsheetSheetFloatImageReqBuilder {
  4341  	builder.apiReq.PathParams.Set("float_image_id", fmt.Sprint(floatImageId))
  4342  	return builder
  4343  }
  4344  
  4345  // 更新已有的浮动图片位置和宽高,包括 range、width、height、offset_x 和 offset_y,不包括 float_image_id 和 float_image_token。
  4346  func (builder *PatchSpreadsheetSheetFloatImageReqBuilder) FloatImage(floatImage *FloatImage) *PatchSpreadsheetSheetFloatImageReqBuilder {
  4347  	builder.floatImage = floatImage
  4348  	return builder
  4349  }
  4350  
  4351  func (builder *PatchSpreadsheetSheetFloatImageReqBuilder) Build() *PatchSpreadsheetSheetFloatImageReq {
  4352  	req := &PatchSpreadsheetSheetFloatImageReq{}
  4353  	req.apiReq = &larkcore.ApiReq{}
  4354  	req.apiReq.PathParams = builder.apiReq.PathParams
  4355  	req.apiReq.Body = builder.floatImage
  4356  	return req
  4357  }
  4358  
  4359  type PatchSpreadsheetSheetFloatImageReq struct {
  4360  	apiReq     *larkcore.ApiReq
  4361  	FloatImage *FloatImage `body:""`
  4362  }
  4363  
  4364  type PatchSpreadsheetSheetFloatImageRespData struct {
  4365  	FloatImage *FloatImage `json:"float_image,omitempty"` // 浮动图片信息
  4366  }
  4367  
  4368  type PatchSpreadsheetSheetFloatImageResp struct {
  4369  	*larkcore.ApiResp `json:"-"`
  4370  	larkcore.CodeError
  4371  	Data *PatchSpreadsheetSheetFloatImageRespData `json:"data"` // 业务数据
  4372  }
  4373  
  4374  func (resp *PatchSpreadsheetSheetFloatImageResp) Success() bool {
  4375  	return resp.Code == 0
  4376  }
  4377  
  4378  type QuerySpreadsheetSheetFloatImageReqBuilder struct {
  4379  	apiReq *larkcore.ApiReq
  4380  }
  4381  
  4382  func NewQuerySpreadsheetSheetFloatImageReqBuilder() *QuerySpreadsheetSheetFloatImageReqBuilder {
  4383  	builder := &QuerySpreadsheetSheetFloatImageReqBuilder{}
  4384  	builder.apiReq = &larkcore.ApiReq{
  4385  		PathParams:  larkcore.PathParams{},
  4386  		QueryParams: larkcore.QueryParams{},
  4387  	}
  4388  	return builder
  4389  }
  4390  
  4391  // 表格 token
  4392  //
  4393  // 示例值:shtcnmBA*****yGehy8
  4394  func (builder *QuerySpreadsheetSheetFloatImageReqBuilder) SpreadsheetToken(spreadsheetToken string) *QuerySpreadsheetSheetFloatImageReqBuilder {
  4395  	builder.apiReq.PathParams.Set("spreadsheet_token", fmt.Sprint(spreadsheetToken))
  4396  	return builder
  4397  }
  4398  
  4399  // 子表 id
  4400  //
  4401  // 示例值:0b**12
  4402  func (builder *QuerySpreadsheetSheetFloatImageReqBuilder) SheetId(sheetId string) *QuerySpreadsheetSheetFloatImageReqBuilder {
  4403  	builder.apiReq.PathParams.Set("sheet_id", fmt.Sprint(sheetId))
  4404  	return builder
  4405  }
  4406  
  4407  func (builder *QuerySpreadsheetSheetFloatImageReqBuilder) Build() *QuerySpreadsheetSheetFloatImageReq {
  4408  	req := &QuerySpreadsheetSheetFloatImageReq{}
  4409  	req.apiReq = &larkcore.ApiReq{}
  4410  	req.apiReq.PathParams = builder.apiReq.PathParams
  4411  	return req
  4412  }
  4413  
  4414  type QuerySpreadsheetSheetFloatImageReq struct {
  4415  	apiReq *larkcore.ApiReq
  4416  }
  4417  
  4418  type QuerySpreadsheetSheetFloatImageRespData struct {
  4419  	Items []*FloatImage `json:"items,omitempty"` // 子表的所有浮动图片信息
  4420  }
  4421  
  4422  type QuerySpreadsheetSheetFloatImageResp struct {
  4423  	*larkcore.ApiResp `json:"-"`
  4424  	larkcore.CodeError
  4425  	Data *QuerySpreadsheetSheetFloatImageRespData `json:"data"` // 业务数据
  4426  }
  4427  
  4428  func (resp *QuerySpreadsheetSheetFloatImageResp) Success() bool {
  4429  	return resp.Code == 0
  4430  }