2014-01-20 178 views
0

我正在开发一个项目。现在我有一个任务,使用Apache poi API生成excel文件。Java Apache poi

我的问题是我有PrinWriter对象而不是OutputStream。

workbook.write(outputStream); 

如何解决这种情况?

+0

可能复制http://stackoverflow.com/questions/4268353/is-there-a-simple-and-safe-way-to-convert-a-printwriter-into-a-printstream的 –

+0

你会需要某种'OutputStream'来装饰'Writer'。 [Commons IO库中有一个](http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/output/WriterOutputStream.html)。 –

回答

0
File f=new File("c://newfolder//lijo.xls"); 
    PrintWriter out=new PrintWriter(f); 
    FileOutputStream fout=new FileOutputStream(f); 

从一个输出流转换为另一只通过参考值 例如转换文件fileoutput流

File file=new File("c://lijo.xls"); 
FileOutputStream outputStream=new FileOutputStream(file); 
+0

你在哪看到'FileOutputStream'上的构造函数需要一个'Writer'? [JavaDoc]中没有一个(http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html)。 –

0

如果您在Web项目工作,你可以使用ServletOutputStream和做的事情像这样

Workbook wb = new HSSFWorkbook(); 
ServletOutputStream out = response.getOutputStream(); 
      wb.write(out); 
      out.flush(); 
      out.close(); 

或者您可以使用FileInputStream

Workbook wb = WorkbookFactory.create(new FileInputStream("MyExcel.xlsx")); 
+0

OP说:“我的问题是我有PrinWriter对象,而不是OutputStream。”。所以他不能使用response.getOutputStream() –