Сортировать лист 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: изображение отчета:

Обзор отчета

Большое спасибо.

0 ответов

Другие вопросы по тегам