2016-04-24 18 views
0

3つのテキストボックスのデータをExcelテーブルに渡すために押すボタンを作成したいのですが、毎回同じテーブルを使用して、新しい行。何かを追加したいときはいつでも、それは私に新しいExcelファイルを作成します。ここに私のコードです。C#のデータを既存のファイルをExcelに渡す方法

 Excel.Workbook xlWorkBook; 
     Excel.Worksheet xlWorkSheet; 
     object misValue = System.Reflection.Missing.Value; 

     xlWorkBook = xlApp.Workbooks.Add(misValue); 
     xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 
     xlWorkSheet.Cells[1, 1] = "Book name"; 
     xlWorkSheet.Cells[1, 2] = "Author"; 
     xlWorkSheet.Cells[1, 3] = "Rating"; 

     string curFile = @"g:\Biblioteca.xls"; 

     if (!File.Exists(curFile)) 
     { 
      xlWorkBook.SaveAs("g:\\Biblioteca.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); 
      xlWorkSheet.Cells[++k, 1] = getName; 
      xlWorkSheet.Cells[k, 2] = getAuthor;  
      xlWorkSheet.Cells[k, 3] = getRating; 
      MessageBox.Show("Excel created succesfuly"); 
     } 
     else 
     { 

      Excel.Application excelApp = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application"); 
      Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(curFile, 
        0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", 
        true, false, 0, true, false, false); 
      xlWorkSheet.Cells[++k, 1] = getName; 
      xlWorkSheet.Cells[k, 2] = getAuthor; 
      xlWorkSheet.Cells[k, 3] = getRating; 
     } 
     xlWorkBook.Close(true, misValue, misValue); 
     xlApp.Quit(); 


    } 

}

+0

なぜこれでOleDbを使用しようとしないのですか? – Steve

+0

あなたはあなたが持っている問題についてもっと詳しく説明できますか?新しいファイルを作成すると言うと、 'if(!File.Exists(curFile)) 'ブロックに入りますか?あなたは 'Excel created succesfuly'メッセージを受け取ったのですか、それとも' else'ブロックに入って新しいファイルを作成していますか? – gmiley

+0

以下のSOの質問を見て、彼らはあなたが望むことを行うための適切な方法を提供するかもしれません。ここでは:http://stackoverflow.com/questions/20142488/how-to-append-data-into-a-excel-sheet-column and Here:http://stackoverflow.com/questions/21659069/writing-data-既存のエクセルファイルをCシャープにする – gmiley

答えて

0

あなたは、既存のファイルを開いていません!

既存のスプレッドシートを開く例については、@ gmileyの2番目のリファレンスを参照してください。新しいデータの配置方法を理解するには、Rangeを調べる必要があります。

関連する問題