TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Muhammad Adeel
NA
3
880
Compare data in Rows of 2 Excel Files to Check Similar Value
Oct 5 2015 11:20 PM
Hi,
I'm Trying to Check if 2 Excel Files Contain Same Data in Specific Rows. Here is What I've Done.
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.Runtime.InteropServices;
using System.Data.SqlClient;
using System.IO;
using System.Data.OleDb;
using Excel = Microsoft.Office.Interop.Excel;
namespace DualityChecker
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
OleDbConnection objconn;
private void Form1_Load(object sender, EventArgs e)
{
status.Text = "Status: Select 2 Excel Sheets to Start Comparison !";
}
public string GetExcelSheets(string excelFileName)
{
Microsoft.Office.Interop.Excel.Application excelFileObject = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook workBookObject = null;
workBookObject = excelFileObject.Workbooks.Open(excelFileName, 0, true, 5, "", "", false,
Microsoft.Office.Interop.Excel.XlPlatform.xlWindows,
"",
true,
false,
0,
true,
false,
false);
Excel.Sheets sheets = workBookObject.Worksheets;
// get the first and only worksheet from the collection of worksheets
Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);
MessageBox.Show(worksheet.Name);
return worksheet.Name;
}
private void btnFile1_Click(object sender, EventArgs e)
{
OpenFileDialog File1 = new OpenFileDialog();
File1.CheckFileExists = true;
File1.InitialDirectory = "Desktop";
File1.Filter = "Excel Files|*.xls;*.xlw;*.xlsx|All Files|*.*";
File1.Title = "Select A First Excel File";
if (File1.ShowDialog() == DialogResult.OK)
{
fn1.Text = File1.FileName;
}
else if (fn1.Text == "")
{
MessageBox.Show("Please Select a File !");
}
}
private void btnFile2_Click(object sender, EventArgs e)
{
OpenFileDialog File2 = new OpenFileDialog();
File2.CheckFileExists = true;
File2.InitialDirectory = "Desktop";
File2.Filter = "Excel Files|*.xls;*.xlw;*.xlsx|All Files|*.*";
File2.Title = "Select A First Excel File";
if (File2.ShowDialog() == DialogResult.OK)
{
fn2.Text = File2.FileName;
}
else if (fn2.Text == "")
{
MessageBox.Show("Please Select a File !");
}
}
private void btnCompare_Click(object sender, EventArgs e)
{
status.Text = "Status: Processing...";
string filename1 = fn1.Text;
string filename2 = fn2.Text;
string sheet1 = GetExcelSheets(filename1);
string sheet2 = GetExcelSheets(filename2);
objconn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filename1 + ";" + "Extended Properties=Excel 12.0;");
objconn.Open();
var Firstds = new DataSet();
var Secondds = new DataSet();
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [" + sheet1 + "$]", objconn);
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
objAdapter1.Fill(Firstds, "XLData");
DataTable dt1 = Firstds.Tables[0];
objconn.Close();
objconn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + filename2 + ";" + "Extended Properties=Excel 12.0;");
objconn.Open();
objCmdSelect = new OleDbCommand("SELECT * FROM [" + sheet2 + "$]", objconn);
objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
objAdapter1.Fill(Firstds, "XLData");
DataTable dt2 = Secondds.Tables[0]; // Cannot Find Table, IndexOutRange Exception.
objconn.Close();
objconn.Open();
objCmdSelect = new OleDbCommand("Select * from [" + sheet1 + "$], [" + sheet2 + "$] where [" + sheet1 + "$].F1 == [" + sheet2 + "$].F1", objconn);
objAdapter1 = new OleDbDataAdapter();
objAdapter1.SelectCommand = objCmdSelect;
DataSet objDataset1 = new DataSet();
DataTable dt3 = objDataset1.Tables[0];
objconn.Close();
DataRow[] rows1 = dt1.Select("", "F1 ASC");
DataRow[] rows2 = dt2.Select("", "F1 ASC");
DataRow[] rows3 = dt3.Select("", "F1 ASC");
dataGridView1.DataSource = dt3;
}
}
}
Now Problem is that IT Gives Me An Error That Cannot Find Table 0 Where i highlighted. Here is Example Sheet I'm Using.
External Link: http://s7.postimg.org/lfe3vrhrf/image.png
Reply
Answers (
2
)
Different characters of DELEGATE REFERENCE
Abstract class & Interface