Ich habe ein Arbeitsblatt von einer Arbeitsmappe in eine andere kopieren müssen, und ich bin ein bisschen fest. Die Prämisse ist, dass ich eine "Master" Arbeitsmappe habe, die die Vorlagen für eine Reihe von Berichten speichert, und ich muss dann eine leere Kopie eines bestimmten Arbeitsblatts erstellen und es in einer neuen Arbeitsmappe hinzufügen.C# - Wie kopiert man ein einzelnes Excel-Arbeitsblatt von einer Arbeitsmappe in eine andere?
Dies ist, was ich bisher:
private void CreateNewWorkbook(Tables table)
{
Excel.Application app = null;
Excel.Workbook book = null;
Excel.Worksheet sheet = null;
try
{
string startPath = System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
string filePath = System.IO.Path.Combine(startPath, "sal1011forms.xls");
Microsoft.Win32.SaveFileDialog sfd = new Microsoft.Win32.SaveFileDialog();
app = new Excel.Application();
book = app.Workbooks.Open(filePath);
sheet = (Excel.Worksheet)book.Worksheets.get_Item((int)table + 1);
sfd.AddExtension = true;
sfd.FileName = table.ToString() + ".xls";
sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
if (sfd.ShowDialog() == true)
{
sheet.SaveAs(sfd.FileName);
}
}
finally
{
if (book != null)
{
book.Close();
}
if (app != null)
{
app.Quit();
}
this.ReleaseObject(sheet);
this.ReleaseObject(book);
this.ReleaseObject(app);
}
}
Das einzige Problem, das ich im Moment habe, ist, dass, wenn ich .Save() auf dem Arbeitsblatt aufrufen, es alle Arbeitsblätter aus der spart Originalarbeitsbuch in eine neue Arbeitsmappe. Irgendwelche Ideen, wie man das korrigiert?
Vielen Dank im Voraus,
Sonny