2017-01-22 4 views
-1

私のソフトウェアに問題があります。私はDatagridviewを既存のExcelファイルにエクスポートしたいと思います。私のソフトウェアは、DataGridviewにExcelファイルをインポートして、今私はグリッドビューへの変更をしたいし、それを元に戻したい。私はすでに多くのオプションを試しましたが、既存のファイルに追加したいのですが、ほとんどのチュートリアルは新しいファイルにエクスポートする方法です。誰も私の問題を助けてくれますか?私はまた、グリッドビューを新しいものにエクスポートし、その後、新しいもののシートを既存のものにコピーするというアイデアを持っていました。しかし、同じ問題、私は何かを見つけることができません。私はこのプログラミング全体に非常に慣れていて、私の会社のただの受講生です。誰かが私を助けることができれば、とても素晴らしいことになるでしょう!私の英語が悪ければ、私はドイツに住んでいます。ありがとうございました:)Datagridviewを既存のExcelファイルにエクスポートするC#

+0

エクセルファイルを読み込み、そのデータを 'DataGridView'にインポートするコードを持っているなら、逆の操作を理解するのは難しいはずはありません。あなたはあなたの 'DataGridView'がどのように埋められているのか、あなたはDataGridViewのデータがバインドされているのかどうかは言いませんか? 'DataGridView'に新しいアイテムをどのように追加していますか?既存のワークブックに新しいシートを追加するか、すでにデータが入っている既存のワークシートにデータを追加しますか? Excel、Interop、EPPlus、または他のサードパーティのライブラリをどのように参照していますか? – JohnG

+0

SOは実際にあなたがこの種の助けを得ようとする場所ではありません。何かを試してください。期待どおりに動かない場合は、ここにコードを投稿してください。あなたは質問に次の情報を見ることができます。 [最小、完全、および検証可能なサンプルを作成する方法](http://stackoverflow.com/help/mcve) – JohnG

答えて

0

これは、特定の場所にある特定のExcelファイルに保存されます。

using System; 
using System.Data; 
using System.Windows.Forms; 
using System.Data.SqlClient; 
using Excel = Microsoft.Office.Interop.Excel; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      string connectionString = "Data Source=.;Initial Catalog=pubs;Integrated Security=True"; 
      string sql = "SELECT * FROM Authors"; 
      SqlConnection connection = new SqlConnection(connectionString); 
      SqlDataAdapter dataadapter = new SqlDataAdapter(sql, connection); 
      DataSet ds = new DataSet(); 
      connection.Open(); 
      dataadapter.Fill(ds, "Authors_table"); 
      connection.Close(); 
      dataGridView1.DataSource = ds; 
      dataGridView1.DataMember = "Authors_table"; 
     } 

     private void button2_Click(object sender, EventArgs e) 
     { 
      Excel.Application xlApp; 
      Excel.Workbook xlWorkBook; 
      Excel.Worksheet xlWorkSheet; 
      object misValue = System.Reflection.Missing.Value; 

      Int16 i, j; 

      xlApp = new Excel.ApplicationClass(); 
      xlWorkBook = xlApp.Workbooks.Add(misValue); 

      xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 

      for (i = 0; i <= dataGridView1.RowCount - 2; i++) 
      { 
       for (j = 0; j <= dataGridView1.ColumnCount - 1; j++) 
       { 
        xlWorkSheet.Cells[i + 1, j + 1] = dataGridView1[j, i].Value.ToString(); 
       } 
      } 

      xlWorkBook.SaveAs(@"c:\csharp.net-informations.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); 
      xlWorkBook.Close(true, misValue, misValue); 
      xlApp.Quit(); 

      releaseObject(xlWorkSheet); 
      releaseObject(xlWorkBook); 
      releaseObject(xlApp); 
     } 

     private void releaseObject(object obj) 
     { 
      try 
      { 
       System.Runtime.InteropServices.Marshal.ReleaseComObject(obj); 
       obj = null; 
      } 
      catch (Exception ex) 
      { 
       obj = null; 
       MessageBox.Show("Exception Occured while releasing object " + ex.ToString()); 
      } 
      finally 
      { 
       GC.Collect(); 
      } 
     } 
    } 
} 
関連する問題