C # Remplir les cellules Excel par rangée

Hé, j'essaie de créer ce programme qui envoie l'input dans un file excel et je suis collé sur la façon de stocker l'input sur la ligne suivante.

Jusqu'à présent, je peux get la string de mes boîtes de text dans la deuxième rangée d'excel sous les en-têtes, mais je souhaite donner à l'user la possibilité d'append en plusieurs lignes.

oXL = new Microsoft.Office.Interop.Excel.Application(); oXL.Visible = true; oWB = (Microsoft.Office.Interop.Excel._Workbook)(oXL.Workbooks.Add("")); oSheet = (Microsoft.Office.Interop.Excel._Worksheet)oWB.ActiveSheet; // -- Workstation Information -- oSheet.Cells[1, 1] = "UserName"; oSheet.Cells[1, 2] = "Workstation Name"; oSheet.Cells[1, 3] = "Manufacturer"; oSheet.Cells[1, 4] = "Model"; oSheet.Cells[1, 5] = "Serial"; oSheet.Cells[1, 6] = "CPU"; oSheet.Cells[1, 7] = "RAM"; oSheet.Cells[1, 8] = "OS"; oSheet.Cells[1, 9] = "Version"; oSheet.Cells[1, 10] = "Microsoft Office"; oSheet.Cells[1, 11] = "Recommendations"; oSheet.Cells[1, 12] = "Comments"; oSheet.get_Range("A1", "L1").Font.Bold = true; oSheet.get_Range("A1", "L1").VerticalAlignment = Microsoft.Office.Interop.Excel.XlVAlign.xlVAlignCenter; ssortingng[,] saNames = new ssortingng[500, 500]; saNames[0, 0] = txtUsername1.Text; saNames[0, 1] = txtWorkName1.Text; saNames[0, 2] = cbxManufac.Text; saNames[0, 3] = cbxMachType.Text; saNames[0, 4] = txtModel.Text; saNames[0, 5] = txtSerial.Text; saNames[0, 6] = txtCPU.Text; saNames[0, 7] = cbxRAM.Text; saNames[0, 8] = cbxOS.Text; saNames[0, 9] = txtVersion.Text; saNames[0, 10] = txtMcstOffice.Text; saNames[0, 11] = txtRecomend.Text; saNames[0, 12] = txtComments.Text; oSheet.get_Range("A2", "L1000").Value2 = saNames; oWB.SaveAs("discoSurvey"); 

C'est ce que ressemble mon button Save. Je veux créer un button d'ajout qui leur permettra de continuer à append des informations à cette feuille Excel. Comment puis-je les déplacer vers la ligne suivante?

Hm,

vous devez find la première ligne vide dans le file Excel pour append votre prochaine ligne, n'est-ce pas?

afin que vous puissiez utiliser la boucle suggérée pour searchr la prochaine ligne vide, puis utilisez le rowindex trouvé pour insert vos valeurs.

Je viens de voir cela plus clairement …

  ssortingng[,] saNames = new ssortingng[500, 500]; saNames[0, 0] = txtUsername1.Text; saNames[0, 1] = txtWorkName1.Text; saNames[0, 2] = cbxManufac.Text; saNames[0, 3] = cbxMachType.Text; saNames[0, 4] = txtModel.Text; saNames[0, 5] = txtSerial.Text; saNames[0, 6] = txtCPU.Text; saNames[0, 7] = cbxRAM.Text; saNames[0, 8] = cbxOS.Text; saNames[0, 9] = txtVersion.Text; saNames[0, 10] = txtMcstOffice.Text; saNames[0, 11] = txtRecomend.Text; saNames[0, 12] = txtComments.Text; 

Bien que je n'aime pas le tableau 500×500, tout ce que vous devez faire consiste à interroger votre tableau pour null in a row et à utiliser cet index pour insert des valeurs. mais vous devez tenir votre tableau de manière à ne pas le redéfinir tout le time … placez-le dans un champ peut-être.