Why it is different? Because there are several different methods of sorting ideographic characters or even entire words. The ones that stuck in my mind are:
- by number of strokes
- by using Latin transliteration and then ordering it "naturally" (according to rules specific for Chinese language of course)
There are other methods as well, for example Unicode Technical Report #35 mentions some of them (more by coincidence, not necessary on purpose), but you'd have to have plenty of time to go through it.
To answer your question, on why these sorting orders are different, it just because Java contains its own collation rules and it does not rely on Operating System's ones (as Excel does). These rules might be different. You might also want to try out ICU, which is the source of classes and rules in Java (and is usually a step ahead than JDK).