/webccr/src/com/emis/caesar/emisCommonExcelWriteTask.java

https://bitbucket.org/sanliou/synccr · Java · 75 lines · 52 code · 18 blank · 5 comment · 1 complexity · 81e7086e5fb1055a2af1a1b26b1dd14a MD5 · raw file

  1. package com.emis.caesar;
  2. import java.sql.ResultSet;
  3. import java.sql.ResultSetMetaData;
  4. import javax.servlet.ServletContext;
  5. import com.emis.db.emisConnection;
  6. import com.emis.db.emisDb;
  7. import com.emis.db.emisDbRun;
  8. import com.emis.file.emisExcelWriter;
  9. import com.emis.file.emisFile;
  10. import com.vaadin.ui.UI;
  11. public class emisCommonExcelWriteTask extends emisProgressTask {
  12. String m_SQL;
  13. String m_fileName;
  14. final emisProgressTask thisTask = this;
  15. public emisCommonExcelWriteTask(ServletContext application , UI ui, String sSQL , String fileName ) {
  16. super(application,ui);
  17. m_SQL=sSQL;
  18. m_fileName = fileName;
  19. }
  20. @Override
  21. public void run() {
  22. try {
  23. //thisTask.setStatus("start");
  24. final emisExcelWriter eew = new emisExcelWriter( m_fileName );
  25. eew.createSheet("eprint");
  26. emisDb.getInstance().execute(new emisDbRun() {
  27. @Override
  28. public Object run(emisConnection c) throws Exception {
  29. ResultSet rs = c.createStatement().executeQuery(m_SQL);
  30. ResultSetMetaData meta = rs.getMetaData();
  31. int columnCount = meta.getColumnCount();
  32. Object [] row = new Object[columnCount];
  33. int statusCnt = 0;
  34. int iRows = 0;
  35. while( rs.next() ) {
  36. for(int i=1;i<=columnCount;i++) {
  37. row[i-1]=rs.getString(i);
  38. }
  39. eew.writeRow(row);
  40. statusCnt++;
  41. iRows++;
  42. //if(statusCnt > 1000) {
  43. // statusCnt = 0;
  44. thisTask.setStatus("writing " +iRows);
  45. //}
  46. }
  47. return null;
  48. }
  49. });
  50. eew.close();
  51. thisTask.setStatus("Complete");
  52. } catch (Exception e) {
  53. // emisLog.error(emisCommonExcelWriteTask.class, e);
  54. e.printStackTrace();
  55. }
  56. }
  57. }