从Excel工作表中读取数据

时间:2013-03-20 07:25:40

标签: c# .net excel asp.net-mvc-4

我的D驱动器中有一个名为“test”的excel表(ms excel 2010)。我的数据如下

 Id                URL  
 1          http://www.sample.com/term=100898731%5Buid%5D&cmd=DetailsSearch&report=xml&format=text              
 2          http://www.sample.com/term==101120693%5Buid%5D&cmd=DetailsSearch&report=xml&format=text             
 3          http://www.sample.com/term==100893225%5Buid%5D&cmd=DetailsSearch&report=xml&format=text     
...........continues ............

如何在C#中编码以从excel表中逐个读取这些URL并获取“term =”之后的数值?

2 个答案:

答案 0 :(得分:2)

试试这个

        System.Data.OleDb.OleDbConnection mCon;  
        mCon = new System.Data.OleDb.OleDbConnection();
        mCon.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;data source=" + pathOfFile + ";Extended Properties=\"Excel 12.0;HDR=YES\";");
        System.Data.OleDb.OleDbCommand Command = new System.Data.OleDb.OleDbCommand();
        DataTable DTable = new DataTable();            
        string strSelectQuery, mstrDBTable;
        System.Data.OleDb.OleDbDataAdapter DataAdapter = new System.Data.OleDb.OleDbDataAdapter();            

        strSelectQuery = "SELECT * FROM [" + YourSheetName + "]"; 
      // YourSheetName is the sheet in xls from where you want to load data e.g Sheet1$
        if (mCon.State == ConnectionState.Closed)
        {
            mCon.Open();
        }
        DataAdapter = new System.Data.OleDb.OleDbDataAdapter(strSelectQuery, mCon);
        DataAdapter.Fill(DTable );
        mCon.Close();

现在您的Excel工作表位于数据表中,您可以遍历该工作表来操作URL

中的字符串值

修改

获取字符串

for(int i = 0; i<Dtable.Rows.Count;i++)
{
    string str = Dtable.Rows[i][1].ToString();
    string YourNumber = str.Substring((str.IndexOf('=') + 1), (str.IndexOf('%') - str.IndexOf('=')-1));
}

答案 1 :(得分:0)

试试这个

string fileName = "Activity.xls";
                            savePath += fileName; 
OleDbConnection conn= new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath(savePath) + ";Extended Properties='Excel 12.0;HDR=YES'");
    if (conn.State == ConnectionState.Closed)
    conn.Open();
    string query = "select * from [Sheet1$]";
      OleDbDataAdapter da = new OleDbDataAdapter(query, conn);
                                DataSet ds = new DataSet();
                                da.Fill(ds, "Activities");
                                dt = ds.Tables[0];
                                conn.Close();