DataTableの日本語の並べ替えがエクセルと異なる

データテーブルの並び替えで、

①エクセルのデータをテーブルに格納して並び替え
と、
②手動でエクセルの並び替え機能を使用して並び替え
では、日本語の漢字部分で並び替え結果がちがってしまいこまっています。

例えば、

一般社団法人
名古屋
宇部建設
日本放送協会
株式会社てすと
株式会社リクルート

のような値が入っているエクセルを範囲を読み込みでデータテーブルに格納し、
「データテーブルを並べ替え」アクティビティ、もしくは、DataViewで並べ替えると

一般社団法人
名古屋
宇部建設
日本放送協会
株式会社てすと
株式会社リクルート

になってしまいます。
・・・漢字でもよい感じに並べ替える方法をご存じでしたらアドバイスをいただきたく…

この辺はもう仕方がないのでしょうか…

こんにちは

ソートする前に代入アクティビティで以下を設定してみてください。

System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("ja-JP")

ただし他にも影響がでますので(DateTimeのToStringメソッド等)
必要に応じて以下で戻してください。

System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture

ありがとうございます!
こちらで思った通りにソートができました。

勉強不足ですみません、教えていただきたいのですが、
デフォルトが

System.Globalization.CultureInfo.InvariantCulture

なのでしょうか?
いつもありがとうございます。

こんにちは

 System.Threading.Thread.CurrentThread.CurrentCulture.EnglishName

あたりを出力すると、現在のCultureが何なのか確認できますので
上記の代入の前後等で確認してみると良いかと思います。

ありがとうございます!試してみます!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.