excel文件读取一列并且不断增长

时间:2013-11-25 11:47:42

标签: c# excel

我有一个包含两列的excel文件。我想获得一列及其所有行,然后是第二列和所有行。以同样的方式,我应该重复12列的那些列。

enter image description here

我使用了下面的代码但是我没有获得所需的输出,我在第一列中获得Emp_name但我应该在第二列中获得它。

for (int Cnum = 1; Cnum <= ShtRange.Columns.Count; Cnum++)
{

    if (Cnum == 1)
    {
        dt.Columns.Add((ShtRange.Cells[1, Cnum] as Excel.Range).Value2.ToString());
        for (int Rnum = 1; Rnum <= 9; Rnum++)
        {
            dt.Rows.Add((ShtRange.Cells[Rnum, 1] as Excel.Range).Value2.ToString());

        }
    }
    else if (Cnum == 2)
    {

        dt.Columns.Add((ShtRange.Cells[1, Cnum] as Excel.Range).Value2.ToString());


        for (int Rnum = 1; Rnum <= 9; Rnum++)
        {

            dt.Rows.Add((ShtRange.Cells[Rnum, 2] as Excel.Range).Value2).ToString();

        }
    }

1 个答案:

答案 0 :(得分:0)

坦率地说,我认为您的代码中没有任何问题...这是一个简单的方法,可以在dataset

中获取您的Excel内容
            ds = new DataSet();
            string myConnStr = "";
            if (txtdestination.Contains(".xlsx"))
            {
                myConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + txtdestination.ToString() + ";" + "Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\"";
            }
            else
            {

                myConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + txtdestination.ToString() + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1\"";
            }
            OleDbConnection myConn = new OleDbConnection(myConnStr);
            OleDbCommand cmd = new OleDbCommand("select * from [Sheet1$]", myConn);
            OleDbDataAdapter adapter = new OleDbDataAdapter();
            adapter.SelectCommand = cmd;
            myConn.Open();
            adapter.Fill(ds);


            myConn.Close();

注意您需要将工作表名称设为Sheet1

txtdestination是excel文件的路径