2016-10-19 3 views
0

ダウンロードが完了次第、Excelファイルを自動的に開く方法を探しています。ファイルは「ExportAging.xlsx」と呼ばれ、私は解決策を得ている最も近いがこれです:C#ダウンロードが完了した後、自分のコードを自動的にExcelファイルに開く必要があります

enter image description here

これは私がすべてのヘルプは高く評価され

private void ExportToExcel() 
    { 
     try 
     { 
      SaveFileDialog saveDialog = new SaveFileDialog(); 
      saveDialog.Filter = "Excel files (*.xlsx)|*.xlsx"; 
      saveDialog.FilterIndex = 1; 
      saveDialog.FileName = "ExportAging"; 
      if (saveDialog.ShowDialog() == DialogResult.OK) 
      { 
       workbook.SaveAs(saveDialog.FileName); 
       saveDialog.OpenFile(); 
      } 
     } 
     catch (System.Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
     finally 
     { 
      excel.Quit(); 
      workbook = null; 
      excel = null; 
     } 
    } 

を持っているコードです。

+0

イムありませんあなたが使用しているクラスのうちの1つがIDisposableを実装している場合は、後でDispose()を呼び出す必要があります。そうでなければ、私はこのプログラム(b)がファイルをロックしているとは思わない。 –

+0

'saveDialog'オブジェクトでファイルを開く前に、ファイルを解放するために' workbook'オブジェクトが必要になると思います。 –

+0

私はメガンが何かに乗っていると思う。 workbook.SaveAsメソッドは、使用するFileStreamを破棄します。 –

答えて

0

ので、エクセルアプリケーションをいったん閉じて、再度開きする必要:

if (saveDialog.ShowDialog() == DialogResult.OK) 
{ 
    workbook.SaveAs(saveDialog.FileName); 
    excel.Visible = true; 
} 

別のオプションは、それを保存した後、ファイルをクローズすることはできません。

if (saveDialog.ShowDialog() == DialogResult.OK) 
{ 
    workbook.SaveAs(saveDialog.FileName); 
    workbook.Close(false); 
} 

Disposing of Microsoft.Office.Interop.Word.Application

関連する問題