2016-11-10 21 views
0

私はこの機能を使用して、Excelファイルに書き込み、保存します。私が今やりたいことは、同じ既存のエクセルfile.Thisに追加され関数である。それが存在し、それが存在する場合、追加操作を行う場合既存のExcelファイルに追加する

private void button8_Click(object sender, EventArgs e)//creates excel file and writes data to it 
    { 
     Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); 

     if (xlApp == null) 
     { 
      MessageBox.Show("Excel is not properly installed!!"); 
      return; 
     } 

     if (System.IO.File.Exists("cross_check.xls")) 
     { 



     } 
     else 
     { 


      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); 
      IndexProp += 1; 
      xlWorkSheet.Cells[IndexProp, 1] = comboBox2.Text; 
      xlWorkSheet.Cells[IndexProp, 2] = textBox5.Text; 
      xlWorkSheet.Cells[IndexProp, 3] = textBox2.Text; 
      xlWorkSheet.Cells[IndexProp, 4] = comboBox3.Text; 
      xlWorkSheet.Cells[IndexProp, 5] = textBox3.Text; 
      xlWorkSheet.Cells[IndexProp, 6] = comboBox1.Text; 


      xlWorkBook.SaveAs(@"cross_check.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); 
      xlWorkBook.Close(true, misValue, misValue); 
      xlApp.Quit(); 

      Marshal.ReleaseComObject(xlWorkSheet); 
      Marshal.ReleaseComObject(xlWorkBook); 
      Marshal.ReleaseComObject(xlApp); 

      MessageBox.Show("Excel file created succcessfully"); 
     } 

    } 
} 

この特定のブロックはファイルを検査しています。これはどうすればいいですか?

if (System.IO.File.Exists("cross_check.xls")) 
     { 



     } 
+1

Excel機能を使用していない限り、Excelが簡単に操作できる.CSVファイルを作成して追加するほうがはるかに簡単です。私はInteropが困難であることを発見しました。特にプログラムが異なるPC上で動作する場合は特にそうです。 Excelの機能が必要な場合は、次にExcelでVBAを使用して作業してみてください。 Interopが私の最後の選択です。 – rheitzman

+0

@rheitzman問題は、このExcelファイルをデータグリッドに読み込んだり、しばらくして.CSVファイルに問題が生じる可能性があることです。 – Jevon

答えて

1

ファイルを開いてアクティブブックにしてから、必要な変更を加えたいとします。そこからあなたはそれを保存したり、それであなたが望むことをすることができます。

+0

言い換えれば、ファイルを保存したままにしておきたいと思います。私を許してくださいが、詩集を凌駕することはありません。通常私はテキストファイルで作業し、開いているだけでファイルが終了し、最初に作成された名前で保存されます。しかし、この例では、各操作の終わりにExcelファイルが保存されることを確認しています。どのように私はそれを開いたままにして追加を続けるのですか? – Jevon

+0

Excelファイルに追加する方法には違いはありません。あなたはテキストファイルと同じ方法でそれを行います。ファイルが開いている場合 xlWorkBook = xlApp.Workbooks.Open( "filename"、0、true、5、 ""、 ""、true、Microsoft.Office.Interop.Excel.XlPlatform.xlWindows、 "\ t" 、false、false、0、true、1、0); –

+0

C#interopは、あなたがこれまでに与えたコマンドだけを書きます。ユーザーが手動で追加した場合の動作と同じように、保存を呼び出さない限り、ドキュメントを保存しません。各操作の終了時に保存することによって何を意味するかわかりません。 –

関連する問題