While 'excel at' and 'excel in' are generally interchangeable, I do think there is a subtle distinction.

*excel at* seems to apply better to specific activities.

> He excels at service returns in badminton.

*excel in* seems to apply better to more general categories or things that cover many activities.

> She excels in school.

To me, "She excels at school" sounds thoroughly ungrammatical and would not be uttered by a native speaker. "He excels in service returns in badminton" also sounds a little bit strange but other native speakers than me might use it.