Modifier le nom de la feuille de calcul

J'utilise l'Interop Excel pour créer un file Excel et datatables de sortie, et je souhaite modifier le nom de la feuille de calcul en fonction de la sélection de l'user à partir d'un comboBox. Cependant, je ne peux pas recevoir d'input d'une comboBox pour afficher le nom de la feuille de calcul. Je peux cependant get la même valeur que le nom de la feuille de calcul si elle vient d'une textbox. J'utilise même comboBox.SelectedItem.ToSsortingng() et en fait une string puis j'essaie de l'appliquer comme nom de la feuille de calcul. Le rlocation de tous les caractères non alpha par des espaces n'a pas non plus fonctionné. La piqûre n'a que des caractères et des espaces alpha, mais il ne replacea pas le nom de la feuille de travail originale.

Voici le code que j'utilise pour essayer de modifier le nom de la feuille de calcul.

 worksheet = (Excel.Worksheet)workbook.Worksheets.Add(Missing.Value, workbook.Worksheets[sheetCount], Missing.Value, Missing.Value); workbook.Worksheets[sheetCountPlusONe].Name = "Results " + registrationForm.selectedEvent; 

Essaye ça. Je suppose que registrationForm est la combobox.

Vous devez utiliser la méthode GetItemText qui parsing l'élément sélectionné et renvoie finalement le text de cet élément.

 ssortingng WsName = this.registrationForm.GetItemText(this.registrationForm.SelectedItem); 

ESSAYÉ ET TESTÉ

  private void Form1_Load(object sender, EventArgs e) { this.comboBox1.Items.Add("Sheet1111"); this.comboBox1.Items.Add("Sheet2222"); this.comboBox1.Items.Add("Sheet3333"); } private void btnOPen_Click(object sender, EventArgs e) { Microsoft.Office.Interop.Excel.Application xlexcel; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlexcel = new Excel.Application(); xlexcel.Visible = true; //~~> Open a File xlWorkBook = xlexcel.Workbooks.Open("C:\\sample.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); // Set Sheet 1 as the sheet you want to work with xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); ssortingng WsName = this.comboBox1.GetItemText(this.comboBox1.SelectedItem); xlWorkSheet.Name = WsName; // //~~> Rest of code // }