0

我的 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=" 之后的数值?

4

2 回答 2

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));
}
于 2013-03-20T07:29:32.957 回答
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();
于 2013-03-20T08:42:38.853 回答