2017-12-26 52 views
0

에 대한 일치하는 생성자를 찾을 수 없습니다. 하나의 출력 .xlsx 파일을 만들려고합니다. 하나의 시트 작성 및 헤더 지정으로 프로젝트 경로에서. 파일은 0kb로 생성됩니다. 파일을 열면 "파일 형식 또는 파일 확장명이 유효하지 않습니다. 파일이 손상되지 않았는지, 파일 확장자가 파일 형식과 일치하는지 확인하십시오."라는 메시지가 나타납니다. 파일의 생성을위한오류로 생성 된 curropted.xlsx 파일 - 아래 코드와 일치하는 org.apache.poi.xssf.usermodel.XSSFWorkbook (java.io.FileOutputStream)

// 코드 :

: 또한 비누 UI는 "org.apache.poi.xssf.usermodel.XSSFWorkbook (java.io.FileOutputStream의)에 대한 일치하는 생성자를 찾을 수 없습니다"같은 오류 메시지를 제공합니다
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.util.*; 
import java.lang.*; 
import jxl.*; 
import jxl.write.*; 
import org.apache.poi.ss.usermodel.Cell; 
import org.apache.poi.ss.usermodel.Row; 
import org.apache.poi.xssf.usermodel.XSSFCell; 
import org.apache.poi.xssf.usermodel.XSSFRow; 
import org.apache.poi.xssf.usermodel.XSSFSheet; 
import org.apache.poi.xssf.usermodel.XSSFWorkbook; 
import org.apache.poi.ss.util.* ; 

def groovyUtils=new com.eviware.soapui.support.GroovyUtils(context) 
def projectPath = groovyUtils.projectPath 


//creating the output sheet 
FileOutputStream outfile = new FileOutputStream(new File(projectPath+"\\"+outputFileName)); 
XSSFWorkbook writableWorkbook = new XSSFWorkbook(outfile); 
XSSFSheet writableSheet = writableWorkbook.createSheet("Output Sheet"); 

Row header = writableSheet.createRow(0); 
header.createCell(0).setCellValue("TestCase"); 
header.createCell(1).setCellValue("Parameter"); 
header.createCell(2).setCellValue("Actual"); 
header.createCell(3).setCellValue("Expected"); 
header.createCell(4).setCellValue("Status"); 

context["Outputdata"]=writableSheet 

writableWorkbook.write(); 
writableWorkbook.close(); 

stack trace:

Tue Dec 26 13:50:10 GMT+05:30 2017:ERROR:groovy.lang.GroovyRuntimeException: Could not find matching constructor for: org.apache.poi.xssf.usermodel.XSSFWorkbook(java.io.FileOutputStream) groovy.lang.GroovyRuntimeException: Could not find matching constructor for: org.apache.poi.xssf.usermodel.XSSFWorkbook(java.io.FileOutputStream) at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1550) at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1404) at org.codehaus.groovy.runtime.callsite.MetaClassConstructorSite.callConstructor(MetaClassConstructorSite.java:46) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190) at Script19.run(Script19.groovy:72) at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:90) at com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.run(WsdlGroovyScriptTestStep.java:141) at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.runTestStep(AbstractTestCaseRunner.java:211) at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.runCurrentTestStep(WsdlTestCaseRunner.java:47) at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:138) at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:46) at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.run(AbstractTestRunner.java:128) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

+2

는'의 FileOutputStream를 이용 XSSFWorkbook]의 생성자 (https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFWorkbook.html)가없는 '매개 변수로 사용됩니다. 'XSSFWorkbook'은'InputStream'에서 읽거나 매개 변수없이 새로운 빈 통합 문서로만 생성 할 수 있습니다. Workbook.write (java.io.OutputStream stream)을 사용하여 워크 북을 작성하는 것만 가능합니다. [통합 문서 읽기 및 다시 쓰기] (https://poi.apache.org/spreadsheet/quick-guide.html#ReadWriteWorkbook)를 참조하십시오. –

+0

'XSSFWorkbook writableWorkbook = new XSSFWorkbook (new FileInputStream (projectPath + "\\"+ outputFileName)) ' – aristotll

+0

@aristotl : Tue 12 월 14 일 14:55:30 GMT + 05 : 30 2017 : 오류 : java로 제공 오류 .io.FileNotFoundException : X : \ Soap Projects \ Output_getConsFldPersonSearch.xlsx (지정된 파일을 찾을 수 없습니다). 위의 파일을 만들고 헤더와 값을 할당하려고합니다. – SD31

답변

0

위의 코드 대신 아래 코드를 사용하면 만든 헤더로 파일이 성공적으로 만들어집니다. 에러 상태로

XSSFWorkbook WritableWorkbook = new XSSFWorkbook() FileOutputStream fileOut = new FileOutputStream(new File(projectPath+"\\"+outputFileName))