Apolo had that bad habit as well...and was teaching Onyx. *yikes*
While it's cute to see them so happy to see us, and I want my pups to be affectionate, I'm disabled, and a bunch of my friends are my size or smaller, so we needed to nip this little habit in the butt, so to speak. My trainer suggested several things, all of which seem to be doing the trick. Here we go...
First, do not get excited to see the dogs. (Weird, I know.) Keep body posture and voice levels calm and dispassionate.
Do not *appear* to pay any attention to the dog as it approaches. Any attention you grant will be after the dog sits quietly and patiently for it's "reward" of affection and praise.
If the dog "charges" or prepars to launch at you, Raise you knee to their chest level. As they jump, deflect their body with your knee. Don't jab at them or push at them, the knee is simply there to ensure that their body does not make full contact with yours. This will help you maintain your balance and control the situation. (Apollo will wrap his legs around your waist when he jumps, so the result is, he'll take you down with him...the giant meathead!)
Issue the command of Sit when they approach, once they complete the appropriate behavior, only then do you greet them, maintaining a calm tone.
I've got to say, I was a little leary of standing there like a flamingo while a freight train (read: dog) collides with my body, but amazingly enough, it works like a charm. They don't get hurt, and I am not flying through the air like a kite!! We've been trying this for a couple of weeks now, and I've seen a marked change in their behavior already.