2011-01-12 8 views
1

自分自身のデータでxls-fileを作成する必要があります。しかし、ファイルはすでに作成されていて、ユーザーによって開かれている可能性があります。開かれたExcel文書をすべて入手する

(1)ファイルが存在しない場合: 新しいApplicationClass() Workbooks.Add() 名前を付けて保存を()...

(2)ファイルが存在し、開かれていない場合は、次の問題ではない - 後藤を(1 )

(3)ファイルが存在し、ユーザーによって開かれている場合:そのブックを見つけてワークシートのデータを変更する必要があります。

(3)には問題があります。 Marshal.GetActiveObject( "Excel.Application")は、アクティブなブックのみを検出しました。

+0

Marshal.BindToMonikerは私を助けました –

答えて

3

私はあなたに遅れて答えますが、他の人にとって役に立つかもしれません。

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; 
関連する問題