用COM来操作Excel,在来一个一个的比较
可以取到一个一个的单元格的值

解决方案 »

  1.   

    //将Excel表格中某一sheet中内容放于dataGrid中显示示例:
    /*
    string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = X:\\表.xls;Extended Properties=Excel 8.0";
                OleDbConnection myConn = new OleDbConnection(strCon);
                string strCom = " SELECT * FROM [表$] ";
                myConn.Open();
                OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
                DataSet myDataSet;
                myDataSet = new DataSet();
                myCommand.Fill(myDataSet, "[表$]");
                myConn.Close();            this.dataGridView1.DataSource = myDataSet.Tables[0];
    */
      

  2.   

    给你个思路:先把excel数据读到datatable里。
    然后设置一个bool flag[]。
    用2个for循环进行比较,a1相同的行flag为true。
    最后来个循环,把flag为false的写到一个excel,flag为true的写到另一个。这和我昨天答过的从textbox取文本归类是一样的。
      

  3.   

    先把excel数据读到datatable里。 
    然后设置一个bool   flag[]。 
    用2个for循环进行比较,a1相同的行flag为true。 
    最后来个循环,把flag为false的写到一个excel,flag为true的写到另一个
    --------------------------------------------------------------
    是个好思路,不妨试试
      

  4.   

    先把excel数据读到datatable里。 
    然后循环比较  相同的复制这一行到另一个datetable 并且删除这一行~  最后就剩下不相同的行 2个datatable合并就好
    这样省去再次循环~~  这里只是思路 具体读写操作没有说~~
      

  5.   

    明天我要是有空的话就为了你的分数写下代码了  hoho~~~~~~~~~~~~~~
      

  6.   

    导入DadaSet代码:        private DataSet BindDsFromExcel(string strFileDir, string strDataName)
            {
                string strConn;
                strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFileDir + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
                OleDbConnection OleConn = new OleDbConnection(strConn);
                OleConn.Open();
                String sql = "SELECT * FROM  [" + strDataName + "$]";            OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
                DataSet OleDsExcle = new DataSet();
                OleDaExcel.Fill(OleDsExcle, strDataName);
                OleConn.Close();
                return OleDsExcle;
            }
    写入Excel代码:           try
                {
                    Microsoft.Office.Interop.Excel.Application myExcel = new Microsoft.Office.Interop.Excel.Application();//创建Excel表
                    myExcel.Visible = true;
                    Microsoft.Office.Interop.Excel.Workbooks myWorkbooks = myExcel.Workbooks;//创建Excel工作表
                    Microsoft.Office.Interop.Excel.Workbook myWorkbook = myWorkbooks.Add(System.Reflection.Missing.Value); //创建Excel工作表
                    Microsoft.Office.Interop.Excel.Worksheet myWorksheet = (Microsoft.Office.Interop.Excel.Worksheet)myWorkbook.Worksheets[1];//创建Excel工作表Sheet1页
                    Microsoft.Office.Interop.Excel.Range myrange = myWorksheet.get_Range("A1", "D1");//选择页的范围,从“A1”开始,我这是四列所以到“D1”                object[] myhead = { "日期", "组名", "付款人", "金额" };//设置表头
                    myrange.Value2 = myhead;//表头的值传入Excel表                if (dgvRecord.Rows.Count > 0)
                    {
                        myrange = myWorksheet.get_Range("A2", System.Reflection.Missing.Value);
                        int row = 0;
                        row = dgvRecord.Rows.Count;//设置表的行数
                        int col = 4;//设置表的列数
                        object[,] mydata = new object[row, col];
                        for (int i = 0; i < row; i++)//循环读取DataGridView上的数据
                        {
                            for (int j = 0; j < col; j++)
                            {
                                mydata[i, j] = dgvRecord[j, i].Value.ToString();//读取DataGridView上的值保存到mydata数组中,这里要注意哦,DataGridView是列在前,而Excel刚好相反
                            }
                        }
                        myrange = myrange.get_Resize(row, col);
                        myrange.Value2 = mydata;//把madata数组的值存到Excel表导出
                        myrange.EntireColumn.AutoFit();
                    }
                    myExcel = null;//清空表单
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }          
      

  7.   

    Microsoft.Office.Interop.Excel.Application
    这句话中还需要引入using吗??我怎么打microsoft后,没有office出现呀???
      

  8.   


    添加excel的com模式.然后遍历添加引用.然后在com选项卡里找.