2017-07-27 8 views
0

良い日。1つを除くすべての開いているExcelファイルを閉じる

複数のExcelファイルのすべてのシートを1つのExcelファイルに結合しようとしています。 (egBook1.xlsxがBook11.xlsxなります)しかし、ワークブック「tempWB」はまだ開いていて、そのうちのいくつかは、そのファイル名が「1」末尾に追加しまった

string folder = textBox1.Text; 
string[] xlsxfiles = Directory.GetFiles(folder, "*.xlsx"); 
Excel.Application app = new Excel.Application(); 
app.Visible = true; 
Excel.Workbook finalWB = app.Workbooks.Add(""); 
Excel.Workbook tempWB = app.Workbooks.Add(xlsxfiles); 
for (int i = 2; i <= app.Workbooks.Count; i++) 
{ 
    for (int j = 1; j <= app.Workbooks[i].Worksheets.Count; j++) 
    { 
     Excel.Worksheet ws = app.Workbooks[i].Worksheets[j]; 
     ws.Copy(app.Workbooks[1].Worksheets[1]); 
    } 
} 

:私は、コードの下に使用してそれを首尾をやってきました。

私はすでに試した:

tempWB.Close(); 

をが、それは、ファイル名に追加され、「1」を持つものをクローズされていません。

開いているExcelファイルをすべて閉じるために使用できるコードはありますか(コード内のfinalWB)?

ususalヘルプを進んでいただきありがとうございます。

答えて

0

私はapp.Workbooks.Close();は、すべて開いているブックを閉じるために最後に呼び出す必要があると思います。

+0

こんにちは。はいapp.Worbooks.Close()は動作していますが、その前に、最初にアクティブなワークブックを保存する必要があります。どうもありがとうございました。 – thompogi

0

正常にクローズしている私はすべてが

app.Workbook.Close() 

を実行し、最初の保存などにより、アクティブなブックのシートをエクセル私のコードは

finalWB.SaveAs(excelReportSaveas, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, 
false, false, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, 
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); 

app.Workbooks.Close(); 

以下のように見えますが、返信のためにあなたにガウリをありがとうございます。

関連する問題