excel - Spring MVC / AbstractExcelView / Apache POI : File Error -


i'm using apache poi , extending springs abstractexcelview create excel sheets.

public class excelspreadsheetview extends abstractexcelview {  protected void buildexceldocument(map<string, object> model,             hssfworkbook workbook, httpservletrequest request,             httpservletresponse response) throws exception {  //get positions loop through model @suppresswarnings("unchecked") list<position> positions = (list<position>) model.get("positions");  int lastrow = 0;  mysheet = wb.createsheet("sheet1");  myrow = mysheet.createrow(lastrow); mycell = myrow.createcell(0);  //loop through positions (int p = 0; p < positions.size(); p++) {      myrow = mysheet.createrow(lastrow);      mycell = myrow.createcell(0);      mycell.setcellvalue(new hssfrichtextstring(positions.get(p).getpositionname()));      lastrow++; }  //response stuff goes here, shouldnt need  } 

i can create sheet when have following code after poi code:

response.setheader("content-disposition", "inline;filename=\"spreadsheet.xls\""); response.setcontenttype("application/octet-stream"); outputstream out = response.getoutputstream(); wb.write(out); out.flush(); out.close(); 

thing is, in none of examples online people include writing out outputstream or setting contenttype, seems abstractexcelview handles that.

when comment out 6 lines above, tries create file (i can see in console logs parsing data correctly), when go open file, excel fails open , displays following:

"file error: data may have been lost."

i know code works is, i'm trying right way , follow else doing online. don't think have code in outputstream or contenttype stuff, works if do.

any appreciated!

show me more code please.

you use hssfsheet ?

public class excelreportview extends abstractexcelview {     @override     protected void buildexceldocument(map<string, object> model, hssfworkbook workbook, httpservletrequest request,             httpservletresponse response) throws exception {          // create wordsheet         hssfsheet sheet = workbook.createsheet("title");          hssfrow header = sheet.createrow(0);         header.createcell(0).setcellvalue("whatever");         header.createcell(1).setcellvalue("whatever");          int rownum = 1;         (...) {             // create row data             hssfrow row = sheet.createrow(rownum++);             row.createcell(0).setcellvalue("whatever");             row.createcell(1).setcellvalue("whatever");         }     } } 

Comments

Popular posts from this blog

java - Jmockit String final length method mocking Issue -

asp.net - Razor Page Hosted on IIS 6 Fails Every Morning -

c++ - wxwidget compiling on windows command prompt -