试图找出排序的差异

时间:2015-01-23 17:31:46

标签: java excel sorting selenium

我必须验证表中的列是否正确排序。我把列放入Java列表并执行Collections.sort()忽略大小写。 Java排序与表的列中的排序不同。我注意到表的排序方式与Microsoft Excel排序方式相同。我试图找到差异所以我可以正确地进行Java排序(可能是本地)。

我在Windows中的系统属性显示en.us。无论如何,我对两个角色进行了分类,并在下面给你看。第一个标准拉丁语是Java排序。第二,我不确定它究竟是什么类型,是表格排序和Excel排序。任何人都可以弄清楚我如何使Java排序匹配它(一个区别是它使用忽略情况,我也需要)。

== Collections.sort()

#   $   %   &   '   (   )   *   +   ,   -   .   /   0   1   2   3   4   5
6   7   8   9   :   ;   <   =   >   ?   @   A   B   C   D   E   F   G
H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y
Z   [   \   ]   ^   _   `   a   b   c   d   e   f   g   h   i   j   k   
l   m   n   o   p   q   r   s   t   u   v   w   x   y   z   {   |   }

== Excel /表格排序

'   -   #   $   %   &   (   )   *   ,   .   /   :   ;   ?   @   [   \   ]   
^   _   `   {   |   }   +   <   =   >   0   1   2   3   4   5   6   7   8   
9   A   a   B   b   C   c   D   d   E   e   F   f   G   g   H   h   I   i   
J   j   K   k   L   l   M   m   N   n   O   o   P   p   Q   q   R   r   S   
s   T   t   U   u   V   v   W   w   X   x   Y   y   Z   z

1 个答案:

答案 0 :(得分:0)

来自:https://support.office.microsoft.com/en-ca/article/About-sorting-bfea8d83-145b-400f-9ecf-8f7189945185

  

数据分析从排序开始。您可以在一列或多列中对文本(A到Z或Z到A),数字(从最小到最大或从最大到最小)以及日期和时间(从最旧到最新,从最新到最旧)进行排序。您还可以按自己创建的自定义列表(例如“大”,“中”和“小”)进行排序。或者您可以按格式排序,包括单元格颜色,字体颜色或图标集。最常见的是,您将按列排序,但您也可以按行排序。

     

排序时,将数据重新排列为某种顺序。相反,当您过滤时,您隐藏了无关的数据。有关过滤的详细信息,请参阅关于过滤。

     

对一系列单元格进行排序时,排序条件不会随工作簿一起保存。如果要保存排序条件,以便下次打开工作簿时可以重新应用它,则可以将数据另存为Excel表。在排序多个列时,或者如果创建需要很长时间才能创建的复杂排序条件,请将数据保存在表中。

     

重新应用排序条件时,您可能会看到不同的结果。如果公式返回的值已更改并重新计算工作表,则会发生这种情况。如果单元格范围或表格列已添加,更改或删除数据,也会发生这种情况。

     

Excel使用以下升序排序对数据进行排序:0 1 2 3 4 5 6 7 8 9(空格)! “#$%&amp;()*,。/:;?@ [\] ^ _` {|}〜+&lt; =&gt; abcdefghijklmnopqrstu vwxyz ABCDEFGHIJKLMNOPQRSTU VWXYZ FALSE TRUE(工作表错误)(空白单元格)。

因此排序顺序与Collections.sort()不同。由于Java很可能根据UTF-8对字符进行排序。

不确定Excel正在使用哪种编码,但您可以按如下方式更改Collections.sort()的行为:

Collator collector = Collator.getInstance(Locale.US);
collector.setStrength(Collator.PRIMARY);
Collections.sort(list, collector);

在javadocs中有很多关于此的文档。