I'm not sure of the exact formula to use, but it would be pretty easy with VBA. The only thing I see as an issue is you state you want the first 30 words, but your example only shows the first 16 words. Here is the code to return the first 30 words:
What you do is right-click on the sheet tab, select view code, and paste the above. The way this macro will work is you need to click on the cell that contains the long string. Upon running the macro, the first 30 words along with "..." will be returned in the cell directly below the original cell.
If you want to return more or less than 30 words, just adjust the 30 in the above code. Also, you can have the revised code placed wherever you would like it on the sheet, by adjusting the "Offset" function above. (1, 0) means it will move it 1 row down and 0 columns to the right. So by adjusting these 2 numbers, you should be able to get it wherever you need it.
The code can also be modified if you would like to select the cell to where you would like it posted, if you know the cell address of the long string. Post back if you need any slight revisions to the code.