C#如何获取excel某一列的所有值,并把它存放在一个数组里面?
获取列值最好可以指定范围,

解决方案 »

  1.   

    1,定义OledbConnection连接到Excel;
    2,打开连接,读取数据,定义一个ArrayList,将数据放到ArrayList中(ArrayList.Add)
      

  2.   

     Excel.Range range = oSheet1.get_Range("A1", "A10");
      

  3.   

    通过oledb,直接把excel读取到dataset中,客户端无需安装excel程序
    参考
    http://blog.csdn.net/jinjazz/archive/2007/12/11/1930455.aspx
      

  4.   

    http://blog.csdn.net/smilebrid/archive/2008/04/18/2303629.aspx代码并不是完全按你的意思的,但稍改动一下就能如你所愿了
      

  5.   

    7.8楼的方法我不太适用,我要把几个表的N个列导出来,生成一个新的表,你们的方法我不太适用。现在功能我已经实现LE ,就是速度慢,1000个数据要8s左右,太慢了想先把数据导到数组里面再进行操作。
      

  6.   


    怎么会不适用,数组能做的,dataset都能做到。
      

  7.   

    一个表你的方法没问题,多个表不行,速度更慢,能不能把一个excel的所有数据导入一个二维数组?
      

  8.   

    select *改成 select 字段名 不就可以了
      

  9.   

    这是后你可以把excel看作是数据库,可以做关联查询比如你的excel两个表格:
    sheet1
    a b
    1 ff
    2 fffsheet2a b
    1 rr
    2 rrr---
    可以用关联查询出来:类似private void Form1_Load(object sender, EventArgs e)
            {
                DataSet ds = ExcelToDS(@"c:\aa.xls","test");
                MessageBox.Show(ds.GetXml());
            }
            public static DataSet ExcelToDS(string Path,string TableName)
            {
                DataSet ds = new DataSet();
                try
                {
                    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
                    OleDbConnection conn = new OleDbConnection(strConn);
                    conn.Open();
                    string strExcel = "";
                    OleDbDataAdapter myCommand = null;
                    strExcel = "select a.b,b.b from [sheet1$] a inner join [sheet2$] b on a.a=b.a";
                    myCommand = new OleDbDataAdapter(strExcel, strConn);                myCommand.Fill(ds, TableName);
                }
                catch(Exception ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                }
                return ds;
            }
      

  10.   

    这样就可以把sheet1的b列和sheet2的b列直接合并了