Ho bisogno di copiare un foglio di lavoro da una cartella di lavoro a un'altra e sono un po 'bloccato. La premessa è che ho una cartella di lavoro "master" che memorizza i modelli per un numero di report e quindi ho bisogno di creare una copia vuota di un foglio di lavoro specifico e aggiungerla in una nuova cartella di lavoro.C# - Come copiare un singolo foglio di lavoro Excel da una cartella di lavoro a un'altra?
Questo è quello che ho finora:
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);
}
}
L'unico problema che sto avendo in questo momento è che quando chiamo .save() sul foglio di lavoro, salva tutti i fogli dal cartella di lavoro originale in una nuova cartella di lavoro. qualche idea su come correggere questo?
Grazie in anticipo,
Sonny