就是写一个windows窗体程序,不是在excel里操作
假设有一个EXCEL文件(2003以内版本),里面只有一个sheet,是标准的二维表,假设共A(字串),B(浮点),C(浮点)三列,第一行为标题,数据行数不定。
想读取这个文件,然后假设计算第4列的数据为 对应的行D1=B1/C列之和 这样
在窗体的datagrid里将A,B,C,D列全部显示出来,并且另存为一个EXCEL文件这样
是否可以求代码或者成熟的源码
很少写关于EXCEL的东西

解决方案 »

  1.   

    直接把Excel当成OLEDB的数据库文件读写就行了可以先读取到DataTable里,再添加一列,循环一遍计算出来,或者直接设置表达式,让它自动计算,然后再写回去
      

  2.   

    http://blog.csdn.net/mShopping/archive/2009/03/15/3993094.aspx可以看看这个帖子
      

  3.   

    规则的二维表吗?        [align=left]/// <summary>
            /// 读取EXCEL表格中的数据,通过Fill方法直接填充dataset,针对规则EXCEL
            /// </summary>
            /// <param name="path">excel表格的路径</param>
            /// <returns></returns>
            public static DataSet GetExcelData(string path)
            {
                //存放数据集
                DataSet ds = new DataSet();            if (!CheckSetupExcel())
                {
                    CommUtil.ShowInfoMsg("系统检测本机未安装Office软件,不能支持导出Excel。");
                }
                else
                {
                    //连接字符串
                    string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"; //HDR=YES第一行是数据,NO第一行是标题                 //连接对象
                    OleDbConnection con = new OleDbConnection(ConnectionString);                //查询语句
                    string strQuery = "SELECT * FROM [sheet1$]"; //读取sheet1里的数据                try
                    {
                        //打开连接
                        con.Open();                    //数据适配器
                        OleDbDataAdapter oda = new OleDbDataAdapter(strQuery, con);                    //填充ds
                        oda.Fill(ds, "table");
                    }
                    catch (OleDbException ex)
                    {
                        //抛出异常
                        CommUtil.ShowErrMsg(CommUtil.GetExceptionMsg(ex));
                    }
                    finally
                    {
                        //关闭连接
                        con.Close();
                    }
                }            return ds;
            }[/align]
      

  4.   

    C# Excel读写(OLEDB法) string StrConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePath + ";Extended Properties='Excel 8.0;HDR=NO'";
    OleDbConnection MyConn = new OleDbConnection(StrConn);
    MyConn.Open();
    string StrCmd = "select * from [sheet1$]";
    OleDbDataAdapter MyCommand = new OleDbDataAdapter(StrCmd,MyConn);
    DataSet Ds = new DataSet();
    MyCommand.Fill(Ds,"NameTB");
    DataTable dt=Ds.Tables["NameTB"]
      

  5.   

    参考一下:
    string StrConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePath + ";Extended Properties='Excel 8.0;HDR=NO'"; 
    OleDbConnection MyConn = new OleDbConnection(StrConn); 
    MyConn.Open(); 
    string StrCmd = "select * from [sheet1$]"; 
    OleDbDataAdapter MyCommand = new OleDbDataAdapter(StrCmd,MyConn); 
    DataSet Ds = new DataSet(); 
    MyCommand.Fill(Ds,"NameTB"); 
    DataTable dt=Ds.Tables["NameTB"] 
      

  6.   

    //这个需要加入excel COM组件,在引用里添加
    using Excel = Microsoft.Office.Interop.Excel;
    using Microsoft.Office.Core;
    class excel
        {
            string myFileName;
            Excel.Application myExcel;
            Excel.Workbook myWorkBook;
    //打开excel文件
    public void Open(string fileName)
            {
                myExcel = new Excel.Application();
                myWorkBook = myExcel.Workbooks.Add(fileName);
                myFileName = fileName;
            }
    //在指定位置写入字符串
    public void WriteData(string data, int row, int column)
            {
                myExcel.Cells[row, column] = data;
            }
        }
    //保存文件到指定位置
    public bool SaveAs(string fileName)
            {
                try
                {
                    myWorkBook.SaveAs(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                    return true;            }
                catch (Exception ex)
                {
                    return false;            }
            }
      

  7.   

    引用 microsoft.office.interop.excel 就可以读写了