【问题标题】:Export Datagridview to existing Excel file C#将 Datagridview 导出到现有的 Excel 文件 C#
【发布时间】:2017-01-22 15:29:19
【问题描述】:

我的软件有问题。我想将 Datagridview 导出到现有的 excel 文件。我的软件将一个 excel 文件导入到 datagridview 中,现在我想对 gridview 进行更改,然后将其安全返回。我已经尝试了很多选项,但我想将其添加到现有文件中,并且大多数教程都是关于如何将其导出到新文件中。有人可以帮我解决我的问题吗?我也有将gridview导出到一个新的,然后将新的工作表复制到现有的工作表的想法。但同样的问题,我找不到任何东西。我对整个编程很陌生,只是我公司的一名学习者。如果有人可以帮助我,那就太好了!对不起,如果我的英语不好,我住在德国。谢谢:)

【问题讨论】:

  • 如果你有读取excel文件并将数据导入DataGridView的代码,那么找出反向操作应该不难。你不说你的DataGridView是怎么填充的,DataGridView数据绑定了吗?您如何向DataGridView 添加新项目?是否要将新工作表添加到现有工作簿或将数据添加到已包含数据的现有工作表?您如何引用 Excel、Interop、EPPlus 或其他第三方库?
  • SO 并不是您真正可以获得此类帮助的地方。尝试一些东西,如果它没有按预期工作,请在此处发布您的代码,其他人可以提供帮助。您可能希望查看以下有关提问的信息。 How to create a Minimal, Complete, and Verifiable example.

标签: c# excel gridview datagridview export


【解决方案1】:

记得添加您的参考(右键单击您的项目并选择 CON 参考并查找 Microsoft Excel 15.0 对象库)

private void btnExport_Click(object sender, EventArgs e)
{ 
    Microsoft.Office.Interop.Excel.Application xlworksheet = 
        new Microsoft.Office.Interop.Excel.Application();
           
    xlworksheet.Application.Workbooks.Open(
        @"C:\Users\BLANKSOASHEET.xlsx", Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
        Type.Missing, Type.Missing);
           
    try
    {
       for(int i=1; i<DgvSOA.Columns.Count+1; i++)
       {
           worksheet.Cells[1,i] = datagridView1.Columns[i - 1].HeaderText;
       }       

       for (int i = 0; i < datagridView1.Rows.Count; i++)
       {
           for (int j = 0; j < datagridView1.Columns.Count; j++)
           {
                xlworksheet.Cells[i + 13, j + 1] = datagridView1.Rows[i].Cells[j].Value.ToString();
            }
        }
    }
}

【讨论】:

    【解决方案2】:

    这将保存到特定位置的特定 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();
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-04-09
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多