Сортировать лист JXL по алфавиту в JAVA
Мне нужно отсортировать столбец в алфавитном порядке. Лист Excel генерируется с помощью Groovy (или Java) с JXL API
, Я нашел класс в jxl 2.6.12
который реализует новую функцию jxl.write.biff.sortRecord
). Но это плохо документировано и без примеров использования.
Так есть ли способ сделать это (с jxl.write.biff.sortRecord
или любой другой алгоритм)
Обновить:
Вот мой код (извините, мне пришлось что-то скрывать и менять)
def i=1
testRunner.testCase.testSteps.each{ name,props ->
def StepName = "${name}"
def TestStepType = testRunner.testCase.getTestStepByName(StepName).config.type
if (TestStepType=="request") {
def response = testRunner.testCase.getTestStepByName(StepName).getPropertyValue("response")
hl = new WritableHyperlink(4, i,new URL(""))
sheet.addHyperlink(hl)
Label expectedResponsePath = new Label(4, i, "Cliquez ici !", Info)
sheet.addCell(expectedResponsePath)
props.getAssertionList().each{
// Column that i want to sort alphabitacally
Label EachStepNameLabel = new Label(0, i,StepName ,Info)
sheet.addCell(EachStepNameLabel)
if ("$it.label"=="Validation SOAP") {
if ("$it.status"=="VALID") {
Label SoapStatusLabelOk = new Label(1, i,"$it.label - $it.status" ,Correct)
sheet.addCell(SoapStatusLabelOk)
}
else {
Label SoapStatusLabelKO = new Label(1, i,"$it.label - $it.status" ,False)
sheet.addCell(SoapStatusLabelKO)
}
}
else if ("$it.label"=="Groovy Assertion") {
if ("$it.status"=="VALID") {
Label SoapStatusLabelOk = new Label(2, i,"$it.label - $it.status" ,Correct)
sheet.addCell(SoapStatusLabelOk)
Label EmptyLabel = new Label(3, i,"" ,Info)
sheet.addCell(EmptyLabel)
}
else {
Label SoapStatusLabelKO = new Label(2, i,"$it.label - $it.status" ,False)
sheet.addCell(SoapStatusLabelKO)
def errorMsg = "$it.errors"
if (errorMsg.contains("Nombre de")) {
def printMsg = errorMsg.substring(1,errorMsg.indexOf("Expression")-1)
Label NodeNumberError = new Label(3, i,"- "+printMsg ,Info)
sheet.addCell(NodeNumberError)
}
else {
if (errorMsg.contains("Splitter")) {
String[] errors = errorMsg.split("Splitter");
def finalMessage =""
for (int m=0; m<errors.length-1;m++) {
def printMsg = " - "+errors[m].substring(1,errors[m].indexOf(">")+1)
def printMsgTranslated = printMsg.replaceAll("Expected Child","Noeud fils attendu").replaceAll("- Expected text value" , "Le texte attendu est :").replaceAll("but was","| Texte trouve : ").replaceAll("comparing","Erreur dans la balise : ")
finalMessage+= printMsgTranslated+"\n"
if(m==errors.length-1) finalMessage+= printMsgTranslated
}
Label NodeNumberError1 = new Label(3, i,finalMessage,Info)
sheet.addCell(NodeNumberError1)
}
else if(errorMsg.contains("Unexpected element")) {
Label NodeNumberError3 = new Label(3, i,"- Impossible de comaprer avec un fichier XML non valide (fichier corrompu)",Info)
sheet.addCell(NodeNumberError3)
}
}
}
}
}
i++
}
}
for (int j=0;j<sheet.getColumns();j++)
{
cell=sheet.getColumnView(j);
cell.setAutosize(true);
sheet.setColumnView(j, cell);
}
workbook.write()
workbook.close()
Обновление 2: изображение отчета:
Большое спасибо.