@@ -2674,6 +2674,40 @@ def delete_defined_name(self, defined_name: DefinedName) -> None:
26742674 if err != "" :
26752675 raise RuntimeError (err )
26762676
2677+ def delete_form_control (self , sheet : str , cell : str ) -> None :
2678+ """
2679+ Delete form control in a worksheet by given worksheet name and cell
2680+ reference.
2681+
2682+ Args:
2683+ sheet (str): The worksheet name
2684+ cell (str): The cell reference
2685+
2686+ Returns:
2687+ None: Return None if no error occurred, otherwise raise a
2688+ RuntimeError with the message.
2689+
2690+ Example:
2691+ For example, delete the form control in Sheet1!$A$1:
2692+
2693+ ```python
2694+ try:
2695+ f.delete_form_control("Sheet1", "A1")
2696+ except (RuntimeError, TypeError) as err:
2697+ print(err)
2698+ ```
2699+ """
2700+ prepare_args (
2701+ [sheet , cell ],
2702+ [argsRule ("sheet" , [str ]), argsRule ("cell" , [str ])],
2703+ )
2704+ err , lib .DeleteFormControl .restype = None , c_char_p
2705+ err = lib .DeleteFormControl (
2706+ self .file_index , sheet .encode (ENCODE ), cell .encode (ENCODE )
2707+ ).decode (ENCODE )
2708+ if err != "" :
2709+ raise RuntimeError (err )
2710+
26772711 def delete_picture (self , sheet : str , cell : str ) -> None :
26782712 """
26792713 Delete all pictures in a cell by given worksheet name and cell reference.
@@ -3297,6 +3331,31 @@ def get_doc_props(self) -> DocProperties:
32973331 return c_value_to_py (res .opts , DocProperties ())
32983332 raise RuntimeError (err )
32993333
3334+ def get_form_controls (self , sheet : str ) -> List [FormControl ]:
3335+ """
3336+ Retrieves all form controls in a worksheet by a given worksheet name.
3337+ Note that, this function does not support getting the width and height
3338+ of the form controls currently.
3339+
3340+ Args:
3341+ sheet (str): The worksheet name
3342+
3343+ Returns:
3344+ List[FormControl]: Return the form controls list if no error
3345+ occurred, otherwise raise a RuntimeError with the message.
3346+ """
3347+ prepare_args ([sheet ], [argsRule ("sheet" , [str ])])
3348+ lib .GetFormControls .restype = types_go ._GetFormControlsResult
3349+ res = lib .GetFormControls (self .file_index , sheet .encode (ENCODE ))
3350+ err = res .Err .decode (ENCODE )
3351+ if err == "" :
3352+ arr = []
3353+ if res .FormControls :
3354+ for i in range (res .FormControlsLen ):
3355+ arr .append (c_value_to_py (res .FormControls [i ], FormControl ()))
3356+ return arr
3357+ raise RuntimeError (err )
3358+
33003359 def get_merge_cells (self , sheet : str , * without_values : bool ) -> List [MergeCell ]:
33013360 """
33023361 Get all merged cells from a specific worksheet. If the `without_values`
0 commit comments