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