Diese Probe hauptsächlich mit Ausnahme der Bereinigungsroutine korrekt ist, die falsch ist ...
Der Teil
// Cleanup:
GC.Collect();
GC.WaitForPendingFinalizers();
Bedürfnisse an das Ende dieses Verfahrens wie so bewegt werden, ..
Marshal.FinalReleaseComObject(range);
Marshal.FinalReleaseComObject(worksheet);
workbook.Close(false, Type.Missing, Type.Missing);
Marshal.FinalReleaseComObject(workbook);
excelApp.Quit();
Marshal.FinalReleaseComObject(excelApp);
// move deterministic call to garbage collector to AFTER release
// of all COM objects.
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
Dies ist, weil es keinen Sinn gibt, die endgültige zu versuchen Warteschlange von COM-Objekten, bevor die meisten dieser Objekte sogar in die Finalisierungswarteschlange geschoben wurden. Ebenso wird das vorläufige Aufrufen von GC.Collect nur zu einer zusätzlichen Durchquerung der Objekte im Speicher führen, die sich negativ auf die Leistung auswirken und nicht garantieren, dass Objekte bereinigt werden.
Auch ein weiteres Problem mit diesem Beispiel, warum verwenden Sie Set_Value und get_Range Methoden? das scheint unnötig zu sein.
In Bezug auf die Frage, ich denke, Sie müssen einige foreach Anweisungen hinzufügen, um die Folien im Präsentationsobjekt durchlaufen, und sobald Sie die gewünschten Daten von jedem gesammelt haben, fügen Sie eine neue Folie im Rahmen von die aktuelle Folieniteration.
heißt
foreach slide in Presentation.Slides()
{
string data = getData(slide);
Excel.WorkSheet worksheet = workbook.Sheets.Add(Type.Missing);
worksheet.Range("A1").Value = data;
}
// you will need to write the getData method yourself...
VB.NET Seite Frage ... Für die Person über VB.Net Probe der obigen fragen ...
Entfernen Sie die Semikolons.
Ersetzen Sie alle Instanzen von Type.Missing mit BLANK (dh "keinen Platz")
ersetzen get_range()
mit .Range()
set_value()
Ersetzen mit .Value()
- hinzufügen
Imports Excel = Microsoft.Office.Interop.Excel
Anweisung an die Spitze deiner Klasse.
hey danke! bin dankbar! – Justin
kein Problem, nächstes Mal geben Sie eine Verbesserung, wenn es Ihnen hilft oder Sie es sachlich richtig finden. –