Comment faire pour copier des feuilles de calcul excel Dans un autre classeur excel sans ouvrir le fichier excel en c#, winforms?
Dans l'application windows en C#,
J'ai plusieurs classeurs excel, ce que je veux, c'est de copier les feuilles de calcul du classeur excel d'un classeur unique.
C'est possible, mais je dois ouvrir les classeurs excel dans le but de le faire.
Excel.Application app = new Excel.Application();
app.Visible = true;
app.WindowState = XlWindowState.xlMinimized;
app.Workbooks.Add("");
app.Workbooks.Add(@"Path\WorkBook1.xlsx");
app.Workbooks.Add(@"Path\WorkBook2.xlsx");
for (int i = 2; i <= app.Workbooks.Count; i++)
{
int count = app.Workbooks[i].Worksheets.Count;
app.Workbooks[i].Activate();
for (int j = 1; j <= count; j++)
{
Excel._Worksheet ws = (Excel._Worksheet)app.Workbooks[i].Worksheets[j];
ws.Select(true);
ws.Cells.Select();
Excel.Range sel = (Excel.Range)app.Selection;
sel.Copy(Type.Missing);
Excel._Worksheet sheet = (Excel._Worksheet)app.Workbooks[1].Worksheets.Add(
Type.Missing, Type.Missing, Type.Missing, Type.Missing
);
sheet.Paste(Type.Missing, Type.Missing);
sheet.Name = app.Workbooks[i].Worksheets[j].Name;
}
}
app.DisplayAlerts = false;
app.Workbooks[3].Close();
app.Workbooks[2].Close();
app.DisplayAlerts = true;
Cursor = Cursors.Default;
MessageBox.Show("Successfully Generated Excel...!", "Excel Tool", MessageBoxButtons.OK, MessageBoxIcon.Information);
Est possible sans ouvrir les feuilles de calcul excel, copier toutes les données avec leurs styles ?
La copie des feuilles d'un classeur sans ouvrir le fichier Excel n'est pas possible. Cependant, si vous souhaitez que l'opération de copie à s'exécuter en arrière-plan, vous pouvez le faire dans une autre application Excel. Une fois, j'ai dû copier un modèle de feuille qui contenait des macros de démarrage. J'ai dû ouvrir ce modèle dans un document distinct (invisible) de l'application Excel avec des macros désactivées.
OriginalL'auteur Achilles | 2013-05-13
Vous devez vous connecter pour publier un commentaire.
Pour copier une feuille de calcul et l'ensemble de son contenu et mise en forme sans avoir à le sélectionner et copier le contenu de la feuille de calcul, vous pouvez faire usage de Feuille de calcul.Copie. Utilisation:
Si, toutefois, ce que vous entendez par votre question, c'est que vous voulez copier le contenu de la des classeurs dans un seul et même classeur sans jamais ouvrir le fichier, puis je ne crois pas que c'est possible. Vous devez ouvrir le fichier pour accéder aux données.
Pour citer, la question réelle, et pas seulement le titre du post: "c'Est possible sans ouvrir les feuilles de calcul excel, copier toutes les données avec leurs styles ?" Cela ne veut pas ouvrir la feuille et de copier toutes les données. Il copie la feuille.
pouvez-vous l'exécutez pour le classeur est fermé?? Je ne suis pas sûr... Avez-vous tester??
J'utilise presque cette séquence exacte des appels dans un autre projet de la mine de copier des feuilles à partir d'un modèle de classeur à un autre utilisé pour la génération de rapports. Je serais intéressé de savoir si je me trompe au sujet d'être en mesure de copier le contenu d'un fichier sans avoir à accéder au fichier.
semble que c'est une alternative. J'ai pu supprimer cette ligne et de le rendre cachés app.Visible = true; puis fermez les autres feuilles de calcul et d'enregistrer et d'ouvrir mon classeur
OriginalL'auteur Adrian