Difference between OLS(statsmodel) and Scikit Linear Regression
So my question is the both method prints our R^2 result but one is print out 0.98 and the other one is 0.85.


There is a lot of information missing here, but it looks like the first example could be finding the correlation between the predicted and actual values of data from your training set and the second example is finding the correlation between the predicted and actual values of your testing set. This would also explain why the correlation in the second result is lower. The performance of a model on novel (testing) data should nearly always be poorer than on the training dataset that was used to fit the model.


  Is there a way that work with test data set with OLS ?


The statsmodels documentation describes a predict() method that can be used to make predictions on inputs from a design matrix.  You should be able to use this method on your test data once you have fit the model.


  Is the traning data set score gives us any meaning(In OLS we didn't use test data set)? From my past knowledge we have to work with test data.


Evaluation on training data can often be used as a quick check for "best case" generalization performance.  However, this is often only used as a diagnostic to ensure your model has fit properly and should not be taken to be a true indicator of generalization.