Cet article explique comment utiliser les contrôles ActiveX dans Excel avec C#. Il contient les détails nécessaires pour définir l’EDI pour le développement, une liste d’étapes définissant le processus et un exemple de code pour ajouter le contrôle Excel Active X à l’aide de C#. Vous apprendrez à ajouter un contrôle ActiveX, puis à y accéder pour mettre à jour ou lire la valeur du contrôle.
Étapes pour ajouter des contrôles ActiveX dans Excel à l’aide de C#
- Configurez l’IDE pour qu’il utilise Aspose.Cells for .NET pour travailler avec les contrôles ActiveX.
- Créez un fichier Excel à l’aide de la classe Workbook pour ajouter un contrôle ActiveX
- Accédez à la collection de formes à partir d’une feuille et appelez la méthode AddActiveXControl() pour ajouter des contrôles
- Accédez au contrôle ActiveX et envoyez sa cellule liée
- Pour définir une propriété spécifique d’un contrôle, transtypez le contrôle ActiveX et définissez la valeur
- Pour mettre à jour ou accéder à un contrôle, vérifiez son type de contrôle et mettez à jour la valeur souhaitée
Ces étapes résument comment utiliser les contrôles ActiveX dans Excel à l’aide de C#. Commencez le processus en accédant à la collection de formes à partir d’une feuille d’un classeur et en appelant la méthode AddActiveXControl() dans la classe ShapeCollection. Fournissez le type de contrôle, la cellule cible et la taille du contrôle ActiveX, et liez le contrôle à une cellule pour manipuler sa valeur.
Code pour ajouter un bouton de commande ActiveX à l’aide de C#
using Aspose.Cells; | |
using Aspose.Cells.Drawing; | |
using Aspose.Cells.Drawing.ActiveXControls; | |
class Program | |
{ | |
static void Main(string[] args) | |
{ | |
new License().SetLicense("License.lic"); | |
// Create workbook object | |
Workbook wb = new Workbook(); | |
// Access first worksheet | |
Worksheet sheet = wb.Worksheets[0]; | |
// Add Command Button ActiveX Control inside the Shape Collection | |
Shape s = sheet.Shapes.AddActiveXControl(ControlType.CommandButton, 4, 0, 4, 0, 100, 30); | |
// Access the ActiveX control object and set its linked cell property | |
ActiveXControl c = s.ActiveXControl; | |
c.LinkedCell = "A1"; | |
// Add Toggle Button ActiveX Control inside the Shape Collection | |
Shape s1 = sheet.Shapes.AddActiveXControl(ControlType.ComboBox, 16, 0, 4, 0, 100, 30); | |
// Access the ActiveX control object and set its linked cell property | |
ActiveXControl c1 = s1.ActiveXControl; | |
c1.LinkedCell = "A4"; | |
ComboBoxActiveXControl comboControl = (ComboBoxActiveXControl)c1; | |
comboControl.Value = "A sample value for the ComboBox"; | |
// Save the workbook | |
wb.Save("Combo box with original value.xlsx"); | |
foreach (var shape in sheet.Shapes) | |
{ | |
// Access specific ActiveX Control and set its value | |
if (shape.ActiveXControl != null) | |
{ | |
// Access Shape ActiveX Control | |
ActiveXControl control = shape.ActiveXControl; | |
// Check for the target type | |
if (control.Type == ControlType.ComboBox) | |
{ | |
// Type cast ActiveXControl into ComboBoxActiveXControl and change its value | |
ComboBoxActiveXControl comboBoxActiveX = (ComboBoxActiveXControl)control; | |
comboBoxActiveX.Value = "A new value for the ComboBox"; | |
} | |
} | |
} | |
// Save the workbook in xlsx format | |
wb.Save("AddActiveXControls_out.xlsx", SaveFormat.Xlsx); | |
} | |
} |
Ce code montre l’ajout d’un contrôle ActiveX Combo Box à l’aide de C# dans une feuille Excel. La méthode AddActiveXControl() renvoie une référence à la forme nouvellement ajoutée que vous pouvez utiliser pour définir la cellule liée et d’autres propriétés telles que la police, la couleur, l’ombre et l’alignement du texte, pour en énumérer quelques-unes. De même, si vous transtypez la forme vers un contrôle spécifique, vous obtiendrez une vaste gamme de propriétés pour personnaliser le contrôle.
Cet article nous a appris comment ajouter et accéder aux contrôles ActiveX dans un fichier Excel. Pour ajouter une image dans un fichier Excel, reportez-vous à l’article sur comment ajouter une image dans une cellule Excel en utilisant C#.