J'ai 2 feuilles Excel. Mon exigence est, je dois copier toutes les données d'une feuille Excel à l'autre. Ci-dessous est un extrait de code pour le même, ci-dessous le code est de copier et coller toutes les données d'une feuille à l'autre dans Excel, mais ce n'est pas coller les données de la gamme A1.Comment coller des données sélectionnées dans une autre feuille Excel en utilisant OLEDB?
Je souhaite que les données sélectionnées soient collées dans une autre feuille Excel à partir de la première ligne. En outre, je veux supprimer et insérer de nouvelles données chaque fois que le bouton est cliqué, au lieu d'ajouter dans le même. S'il vous plaît aider.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.Common;
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
namespace TestExcelSheet
{
public partial class Form1 : Form
{
string path = @"C:\Users\Bhawesh\Documents\Visual Studio 2010\Projects\TestExcelSheet\DataValidationTest.xlsx";
string pathdestination = @"C:\Users\Bhawesh\Documents\Visual Studio 2010\Projects\TestExcelSheet\DataValidationTest - updated.xlsx";
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
//Source Path
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;";
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OleDb");
DbDataAdapter adapter = factory.CreateDataAdapter();
DbCommand selectCommand = factory.CreateCommand();
selectCommand.CommandText = "SELECT [Job Code], [Job Name],Format([Start Date],'MM-DD-YYYY') as [Start Date], Format([End Date],'MM-DD-YYYY') as [End Date] FROM [Job$]";
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = connectionString;
selectCommand.Connection = connection;
adapter.SelectCommand = selectCommand;
DataSet Job = new DataSet();
adapter.Fill(Job);
for (int iRowCount = 0; iRowCount <= Job.Tables[0].Rows.Count; iRowCount++)
{
string JobCode = "";
string JobName = "";
string StartDate = "";
string EndDate = "";
JobCode = Job.Tables[0].Rows[iRowCount]["Job Code"].ToString().Trim();
JobName = Job.Tables[0].Rows[iRowCount]["Job Name"].ToString().Trim();
StartDate = Job.Tables[0].Rows[iRowCount]["Start Date"].ToString().Trim();
EndDate = Job.Tables[0].Rows[iRowCount]["End Date"].ToString().Trim();
//Destination Path
string connectionStringdest = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathdestination + ";Extended Properties=Excel 12.0;";
DbProviderFactory factorydest = DbProviderFactories.GetFactory("System.Data.OleDb");
DbDataAdapter adapterdest = factorydest.CreateDataAdapter();
DbCommand insertCommand = factorydest.CreateCommand();
DbConnection connectiondest = factorydest.CreateConnection();
connectiondest.ConnectionString = connectionStringdest;
insertCommand.Connection = connectiondest;
adapterdest.InsertCommand = insertCommand;
if (connectiondest.State == ConnectionState.Closed)
{
connectiondest.Open();
}
if (Job.Tables.Count > 0 && Job.Tables[0].Rows.Count > 0)
{
insertCommand.CommandText = "Insert into [Job_updated$] values ('" + JobCode + "', '" + JobName + "', '" + StartDate + "', '" + EndDate + "') ";
//insertCommand.CommandText = "UPDATE [Job_updated$E1:E1] SET F1='MyNewCol';";
insertCommand.ExecuteNonQuery();
insertCommand.Dispose();
}
connectiondest.Close();
dataGridView1.DataSource = Job.Tables[0].DefaultView;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
}