be8409ee2af79889230b54caad64d83282e14e7c.svn-base 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package UIB.UIB03.ZBS;
  2. import java.io.ByteArrayOutputStream;
  3. import java.io.InputStream;
  4. import java.io.OutputStream;
  5. import java.util.HashMap;
  6. import jxl.Workbook;
  7. import java.io.File;
  8. import jxl.write.WritableSheet;
  9. import jxl.write.WritableWorkbook;
  10. /**
  11. *
  12. * @desc 质保书引擎,负责获取模板、选择填充方式
  13. * @author meiguiping
  14. * @date 2010 5:18:02 PM
  15. */
  16. public class QltyGuaranteeEngine implements IQltyGuaranteeEngine
  17. {
  18. private HashMap mapHead;
  19. private DataRowList[] drlChem;
  20. private DataRowList[] drlQlty;
  21. private String tmplNO;
  22. public QltyGuaranteeEngine(){}
  23. public QltyGuaranteeEngine(String tmplNO ,HashMap mapHead, DataRowList[] drlChem , DataRowList[] drlQlty)
  24. {
  25. this.tmplNO = tmplNO;//模板号
  26. this.mapHead = mapHead;//表头信息集合
  27. this.drlChem = drlChem;//成分信息集合
  28. this.drlQlty = drlQlty;//材质信息集合
  29. }
  30. public OutputStream getOutputStream(InputStream is) throws Exception
  31. {
  32. OutputStream os = this.getWorkBookStream(is);
  33. return os;
  34. }
  35. /**
  36. * @desc 读取输入流,填入数据后返回输出流
  37. * @param is
  38. * @return
  39. * @throws Exception
  40. */
  41. private OutputStream getWorkBookStream(InputStream is) throws Exception
  42. {
  43. OutputStream os = new ByteArrayOutputStream();//建立输出流,填入数据的EXCEL形成该输出流
  44. Workbook wBook = Workbook.getWorkbook(is);//获取EXCEL对象,生成工作薄
  45. //Workbook wBook = Workbook.getWorkbook(new File("E:\\a.xls"));
  46. WritableWorkbook wwBook = Workbook.createWorkbook(os, wBook);//创建可操作副本
  47. WritableSheet wSheet = wwBook.getSheet(0);//获取第0个工作表
  48. IQltyGuaranteeBuilder explorer = null;
  49. if("A".equals(tmplNO.substring(0,1)))
  50. {
  51. //A类型质保书......
  52. explorer = new QltyGuaranteeBuilderA(wSheet);
  53. }
  54. else if("B".equals(tmplNO.substring(0,1)))
  55. {
  56. //B类型质保书......
  57. explorer = new QltyGuaranteeBuilderB(wSheet);
  58. }
  59. explorer.buildQltyGuarantee(tmplNO, mapHead, drlChem, drlQlty);
  60. wwBook.write();
  61. os.close();
  62. wwBook.close();
  63. wBook.close();
  64. return os;
  65. }
  66. }