package xin.glue.ui.common.blob; import java.io.BufferedInputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.zip.GZIPInputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.PageContext; import jxl.Workbook; import jxl.write.WritableWorkbook; import com.posdata.glue.dao.vo.PosRowSet; public class PosExcelStream extends PosBolbManager { public PosExcelStream(HttpServletRequest request, HttpServletResponse response, JspWriter out, PageContext pageContext) { super(request, response, out, pageContext); } public void setContext(OutputStream os) throws Exception { PosRowSet rowSet = (PosRowSet)dataList.get(0); if (rowSet == null || !rowSet.hasNext()) return; InputStream in = (InputStream)rowSet.next().getAttribute("BLOBFILE"); if (in == null) return; WritableWorkbook wb = Workbook.createWorkbook(os, Workbook.getWorkbook(new BufferedInputStream(new GZIPInputStream(in)))); wb.write(); wb.close(); in.close(); } }