2011-01-12 16 views
1

Ich brauche erstellen xls-Datei mit eigenen Daten. Die Datei kann jedoch bereits erstellt und vom Benutzer geöffnet werden.Holen Sie sich alle geöffneten Excel-Dokumente

(1) Wenn die Datei nicht existiert: neuen ApplicationClass() Workbooks.Add() SaveAs() ...

(2) Wenn die Datei vorhanden ist und nicht geöffnet: nicht Problem - goto (1)

(3) Wenn die Datei vorhanden ist und vom Benutzer geöffnet wird: müssen sie Arbeitsmappe finden und Daten des Arbeitsblatts reformieren.

Mit (3) habe ich ein Problem. Marshal.GetActiveObject ("Excel.Application") hat nur aktive Arbeitsmappen gefunden.

+0

Marshal.BindToMoniker hat mir geholfen –

Antwort

3

Ich weiß, es ist spät, um Ihnen zu antworten, aber kann für jemand anderen nützlich sein.

Microsoft.Office.Interop.Excel.Application oExcelApp; 

oExcelApp = System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); 

foreach (Microsoft.Office.Interop.Excel.Workbook WB in oExcelApp.Workbooks) { 
    MessageBox.Show(WB.FullName); 
} 

oExcelApp = null; 
Verwandte Themen