Essayez d'ajouter plusieurs feuilles excel
je suis en train de programmation pour ajouter les feuilles dans un nouveau document excel.
ma sortie attendue est fiches nommé "test1-20", mais au lieu de cela je obtenir 'la feuille Sheet1-19, test20'.
pourquoi ne pas ce travail?
Workbook workbook;
Application objExcel;
objExcel = new Application();
objExcel.Visible = false;
objExcel.DisplayAlerts = false;
for (var i = 0; i < worksheets.Count; i++)
{
workbook= objExcel.Workbooks.Add(Missing.Value);
var worksheet = (Worksheet)workbook.Worksheets.get_Item(i + 1);
worksheet.Name = string.Format("test{0}", i + 1);
}
Attendez une seconde. Êtes-vous essayer d'ajouter des feuilles de calcul ou des classeurs? Les classeurs.Ajouter() me semble bizarre ici.
Pas si vous êtes la création d'une nouvelle application Excel objet. Au lieu d'ouvrir un classeur existant, vous pouvez en ajouter un nouveau, ajouter quelques Feuilles de travail, faire ce que vous devez faire avec les feuilles de travail et de l'enregistrer.
mais c'est l'ajout de feuilles de calcul.Le comte de nouveaux classeurs (au pluriel)... Probablement pas prévu? Ou je suis juste en manque de quelque chose
Désolé, vous êtes, bien sûr, correct, cela ne devrait pas être dans la boucle for, dans ce cas, vous êtes la création de 20 classeurs et en ajoutant une feuille de calcul pour chacun.
Pas si vous êtes la création d'une nouvelle application Excel objet. Au lieu d'ouvrir un classeur existant, vous pouvez en ajouter un nouveau, ajouter quelques Feuilles de travail, faire ce que vous devez faire avec les feuilles de travail et de l'enregistrer.
mais c'est l'ajout de feuilles de calcul.Le comte de nouveaux classeurs (au pluriel)... Probablement pas prévu? Ou je suis juste en manque de quelque chose
Désolé, vous êtes, bien sûr, correct, cela ne devrait pas être dans la boucle for, dans ce cas, vous êtes la création de 20 classeurs et en ajoutant une feuille de calcul pour chacun.
OriginalL'auteur CurlyFro | 2012-09-14
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Votre propriété visible est définie à false par défaut, de sorte qu'il n'est pas nécessaire pour cela de manière explicite, pas d'alertes sont affichées dans le code ci-dessus si ce n'est pas nécessaire non plus. J'ai testé le code ci-dessus et peut confirmer que ça fonctionne.
J'aimerais ajouter les feuilles à la fin:
collection[i] = wb.Worksheets.Add(After: wb.Sheets[wb.Sheets.Count]);
grâce à la Tête. maintenant les feuilles sont dans le bon ordre mais je suis encore en train de feuilles la feuille Sheet1-20, test1-20'. pourquoi y at-il de "la feuille" Sheet1 "-20'?
Je me demande si elle a quelque chose à voir avec la façon dont Excel est configuré sur votre machine. Quand je lance @JMK du code, j'obtiens 20 feuilles ajouté les noms, je m'attends à:
Test1-1
parTest1-20
. (J'ai ajouté le tiret dans son String.Format.)J'ai mis à jour ma réponse, si vous copier/coller, il va maintenant faire exactement ce que vous voulez
OriginalL'auteur JMK
Voici mon code qui fait cela:
OriginalL'auteur vbstus