public partial class Form1 : Form
{
private System.Data.DataSet myDataSet;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
GetConnect();
dataGridView1.DataMember = "[Sheet1$]";
dataGridView1.DataSource = myDataSet;
dataGridView2.DataMember = "[Sheet2$]";
dataGridView2.DataSource = myDataSet;
}
private void GetConnect()
{
string strCon = textBox1.Text.Trim();
OleDbConnection myConn = new OleDbConnection(strCon);
string strCom = " SELECT * FROM [Sheet1$] ";
myConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
myDataSet = new DataSet();
myCommand.Fill(myDataSet, "[Sheet1$]");
myConn.Close();
strCom = " SELECT * FROM [Sheet2$] ";
myConn.Open();
myCommand = new OleDbDataAdapter(strCom, myConn);
myCommand.Fill(myDataSet, "[Sheet2$]");
myConn.Close();
}
private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 0; j < dataGridView2.Rows.Count; j++)
{
if (dataGridView1.Rows[i].Cells[0].Value.ToString() == dataGridView2.Rows[j].Cells[0].Value.ToString())
{
dataGridView1.Rows[i].Cells[1].Value = Decimal.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString()) + Decimal.Parse(dataGridView2.Rows[j].Cells[1].Value.ToString());
}
}
}
for (int i = 0; i < dataGridView2.Rows.Count; i++)
{
int j = 0;
for (j = 0; j < dataGridView1.Rows.Count; j++)
{
if (dataGridView2.Rows[i].Cells[0].Value.ToString() == dataGridView1.Rows[j].Cells[0].Value.ToString())
{
break;
}
}
if (j == dataGridView1.Rows.Count)
{
DataRow dr = myDataSet.Tables["[Sheet1$]"].NewRow();
dr[0] = dataGridView2.Rows[i].Cells[0].Value.ToString();
dr[1] = dataGridView2.Rows[i].Cells[1].Value.ToString();
myDataSet.Tables["[Sheet1$]"].Rows.Add(dr);
}
}
}
private void button3_Click(object sender, EventArgs e)
{
Excel.Application excel = new Excel.Application();
excel.Application.Workbooks.Add(true);
for (int i = 0; i < dataGridView1.Rows.Count;i++ )
{
excel.Cells[i + 1, 1] = dataGridView1.Rows[i].Cells[0].Value.ToString();
excel.Cells[i + 1, 2] = dataGridView1.Rows[i].Cells[1].Value.ToString();
}
//excel.Cells[1, 1] = "第一行第一列";
//excel.Cells[1, 2] = "第一行第二列";
//excel.Cells[2, 1] = "第二行第一列";
//excel.Cells[2, 2] = "第二行第二列";
//excel.Cells[3, 1] = "第三行第一列";
//excel.Cells[3, 2] = "第三行第二列";
excel.Visible = true;
}
}
注意细节:
1、在visual Studio 命令提示工具中,定位到Excel安装目录,运行“tlbimp Excel.EXE Excel.dll”命令,把Excel.exe编译为 Excel.dll
2、为项目添加 EXCEL.DLL的引用方法如下: 项目 -> 添加引用 -> 浏览 -> 定位到EXCEL.DLL