在JAVA中按字母顺序排序JXL表

时间:2017-02-02 10:05:19

标签: java groovy soapui jxl jexcelapi

我需要按字母顺序对列进行排序。 excel表是使用JXL API的groovy(或java)生成的。 我在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: 报告图片:

Report overview

非常感谢。

0 个答案:

没有答案