Flex导出excel报表

约定不等于承诺〃 2024-04-01 17:10 201阅读 0赞

sheetToExcel.java

6f8131dd42544b03e26422e96154f498.gif

8c15d7f9abd4657000db3bb20a689987.gif

  1. 1 package tree;
  2. 2 import java.io.BufferedInputStream;
  3. 3 import java.io.File;
  4. 4 import java.io.FileInputStream;
  5. 5 import java.io.FileOutputStream;
  6. 6 import java.io.IOException;
  7. 7 import java.io.InputStream;
  8. 8 import java.io.OutputStream;
  9. 9 import java.sql.Connection;
  10. 10 import java.sql.ResultSet;
  11. 11 import java.sql.SQLException;
  12. 12 import java.sql.Statement;
  13. 13 import java.util.ArrayList;
  14. 14 import java.util.HashMap;
  15. 15 import java.util.Map;
  16. 16
  17. 17 import javax.servlet.ServletException;
  18. 18 import javax.servlet.http.HttpServlet;
  19. 19 import javax.servlet.http.HttpServletRequest;
  20. 20 import javax.servlet.http.HttpServletResponse;
  21. 21
  22. 22 import net.sf.jxls.transformer.XLSTransformer;
  23. 23 import net.sf.jxls.*;
  24. 24
  25. 25 import org.apache.commons.beanutils.RowSetDynaClass;
  26. 26 import org.apache.poi.hssf.usermodel.*;
  27. 27 import org.apache.poi.hssf.util.Region;
  28. 28 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
  29. 29
  30. 30 import tree.SheetFunc;
  31. 31 @SuppressWarnings({ "serial", "unused" })
  32. 32 public class sheetsToExcel extends HttpServlet {
  33. 33
  34. 34 public sheetsToExcel() {
  35. 35 super();
  36. 36 }
  37. 37 public void doGet(HttpServletRequest request, HttpServletResponse response)
  38. 38 throws ServletException, IOException {
  39. 39 }
  40. 40 public void destroy() {
  41. 41 super.destroy(); // Just puts "destroy" string in log
  42. 42 }
  43. 43
  44. 44 public void doPost(HttpServletRequest request, HttpServletResponse response)
  45. 45 throws ServletException, IOException {
  46. 46 Connection conn = new connectionDataBase().connProc();
  47. 47 Statement stmt;
  48. 48 Connection connnum = new connectionDataBase().connProc();
  49. 49 Statement stmtnum;
  50. 50 try {
  51. 51 String sqltext =java.net.URLDecoder.decode(request.getParameter("SQL"), "UTF-8");
  52. 52 sqltext=sqltext.toLowerCase();
  53. 53 String BSRQ_ =java.net.URLDecoder.decode(request.getParameter("BSRQ"), "UTF-8"); //20111227
  54. 54 String BBRQ_ =java.net.URLDecoder.decode(request.getParameter("BBRQ"), "UTF-8");
  55. 55 String PERROW=java.net.URLDecoder.decode(request.getParameter("PERROW"), "UTF-8");
  56. 56 String templateFileName =java.net.URLDecoder.decode(request.getParameter("templateFileName"), "UTF-8");
  57. 57 String destFileName = java.net.URLDecoder.decode(request.getParameter("destFileName"), "UTF-8");
  58. 58 String BSRQ=BSRQ_.substring(0,4)+"年"+BSRQ_.substring(4, 6)+"月"+BSRQ_.substring(6,8)+"日";
  59. 59 String BBRQ=BBRQ_.substring(0,4)+"年"+BBRQ_.substring(4, 6)+"月";
  60. 60 int index=sqltext.indexOf("from");
  61. 61 String sqlCount="select count(*) as NO "+sqltext.substring(index);
  62. 62
  63. 63 stmt = conn.createStatement();
  64. 64 ResultSet rs = stmt.executeQuery(sqltext);
  65. 65
  66. 66 stmtnum = connnum.createStatement();
  67. 67 ResultSet rsnum = stmtnum.executeQuery(sqlCount);
  68. 68 int dataRow=0;
  69. 69 while(rsnum.next())
  70. 70 {
  71. 71 dataRow=rsnum.getInt("NO");//获取查询的记录数
  72. 72 }
  73. 73 int headRow=7;//表头行数
  74. 74 int perRow=Integer.parseInt(PERROW);;//每页输出数据行
  75. 75 int addSheetNum=dataRow/perRow;//需要增加的页数
  76. 76 String totalSheetNum=String.valueOf(addSheetNum+1);
  77. 77 int lastSheetRow=dataRow%perRow;//最后一页数据行
  78. 78
  79. 79 int[][] sqlDataInt;
  80. 80 sqlDataInt=new int[dataRow][5];
  81. 81
  82. 82 float[][] sqlDataFloat;
  83. 83 sqlDataFloat=new float[dataRow][5];
  84. 84
  85. 85 String[][] sqlDataString;
  86. 86 sqlDataString=new String[dataRow][3];
  87. 87 for(int m=0;rs.next();m++)
  88. 88 {
  89. 89 sqlDataInt[m][0]=rs.getInt("JCMSL");
  90. 90 sqlDataInt[m][1]=rs.getInt("CCSL");
  91. 91 sqlDataInt[m][2]=rs.getInt("CCL");
  92. 92 sqlDataInt[m][3]=rs.getInt("GHL");
  93. 93 sqlDataInt[m][4]=rs.getInt("JCL");
  94. 94
  95. 95 sqlDataFloat[m][0]=rs.getFloat("YD");
  96. 96 sqlDataFloat[m][1]=rs.getFloat("YDZJE");
  97. 97 sqlDataFloat[m][2]=rs.getFloat("KD");
  98. 98 sqlDataFloat[m][3]=rs.getFloat("KDZJE");
  99. 99 sqlDataFloat[m][4]=rs.getFloat("SPJE");
  100. 100
  101. 101 sqlDataString[m][0]=rs.getString("KB");
  102. 102 sqlDataString[m][1]=rs.getString("BYHLJ");
  103. 103 sqlDataString[m][2]=rs.getString("BZ");
  104. 104 }
  105. 105 RowSetDynaClass rsdc = new RowSetDynaClass(rs, false);
  106. 106 int i = rsdc.getRows().size();
  107. 107 Map beans = new HashMap();
  108. 108 //beans.put( "HCDC", rsdc.getRows());
  109. 109 beans.put("BSRQ",BSRQ); //
  110. 110 beans.put("BBRQ",BBRQ); //
  111. 111
  112. 112 InputStream is = new FileInputStream(templateFileName);
  113. 113 XLSTransformer transformer = new XLSTransformer();
  114. 114 transformer.transformXLS( templateFileName, beans,destFileName);
  115. 115 HSSFWorkbook workBook = transformer.transformXLS(is, beans);
  116. 116
  117. 117 for(int num=0;num<addSheetNum;num++)//新增sheet
  118. 118 {
  119. 119 String numStr = String.valueOf(num+2);
  120. 120 workBook.createSheet("第"+numStr+"页");
  121. 121 SheetFunc.copyRows(workBook, 0, num+1,0 , headRow-1, 0);//复制表头
  122. 122 workBook.getSheetAt(num+1).setColumnWidth((short)0, (short)8192);//256,31.38
  123. 123 }
  124. 124 /*
  125. 125 * 创建数据区格式和字体*/
  126. 126 HSSFCellStyle cellStyle = workBook.createCellStyle();
  127. 127 HSSFFont font=workBook.createFont();
  128. 128 font.setFontName("楷体_GB2312");
  129. 129 font.setFontHeightInPoints((short)11);
  130. 130 cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
  131. 131 cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
  132. 132 cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
  133. 133 cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
  134. 134 cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);
  135. 135 cellStyle.setFont(font);
  136. 136 /*
  137. 137 * 创建下栏区格式和字体*/
  138. 138 HSSFCellStyle foterCellStyle = workBook.createCellStyle();
  139. 139 HSSFFont foterFont=workBook.createFont();
  140. 140 foterFont.setFontName("楷体_GB2312");
  141. 141 foterFont.setFontHeightInPoints((short)12);
  142. 142 foterCellStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);
  143. 143 foterCellStyle.setFont(foterFont);
  144. 144
  145. 145 for(int num=0;num<addSheetNum;num++)
  146. 146 {
  147. 147 HSSFSheet sheet = workBook.getSheetAt(num);
  148. 148 String numStr = String.valueOf(num+1);
  149. 149 for(short r=0;r<perRow;r++)//
  150. 150 {
  151. 151 HSSFRow row=sheet.createRow(headRow+r);//
  152. 152 int temp=num*perRow+r;//减少循环中的计算量
  153. 153 for(short c=0;c<2;c++)
  154. 154 {
  155. 155 HSSFCell cell = row.createCell(c);//
  156. 156 SheetFunc.createCellString(workBook, row, c, sqlDataString[temp][c],cellStyle);
  157. 157 }
  158. 158 for(short c=2;c<7;c++)
  159. 159 {
  160. 160 HSSFCell cell = row.createCell(c);//
  161. 161 if(sqlDataInt[num*perRow+r][c-2] ==0)
  162. 162 {
  163. 163 SheetFunc.createCellString(workBook, row, c, " ",cellStyle);
  164. 164 }else{
  165. 165 SheetFunc.createCellInt(workBook, row, c,sqlDataInt[temp][c-2],cellStyle);
  166. 166 }
  167. 167 }
  168. 168
  169. 169 for(short c=7;c<12;c++)
  170. 170 {
  171. 171 HSSFCell cell = row.createCell(c);//
  172. 172 if(sqlDataFloat[num*perRow+r][c-7] == 0f)
  173. 173 {
  174. 174 SheetFunc.createCellString(workBook, row, c, " ",cellStyle);
  175. 175 }else{
  176. 176 SheetFunc.createCellFloat(workBook, row, c, sqlDataFloat[temp][c-7], cellStyle);
  177. 177 }
  178. 178 }
  179. 179
  180. 180 for(short c=12;c<13;c++)
  181. 181 {
  182. 182 HSSFCell cell = row.createCell(c);//
  183. 183 SheetFunc.createCellString(workBook, row, c, sqlDataString[temp][c-10],cellStyle);
  184. 184 }
  185. 185 }
  186. 186 for(int j=0;j<perRow;j=j+2)//合并行
  187. 187 {
  188. 188 sheet.addMergedRegion(new Region(7+j,(short)0,8+j,(short)0));
  189. 189 }
  190. 190
  191. 191 for(short r=0;r<1;r++)//
  192. 192 {
  193. 193 HSSFRow row=sheet.createRow(headRow+perRow+r);//
  194. 194 HSSFCell cell = row.createCell((short)0);
  195. 195 SheetFunc.createCellString(workBook, row, (short)0, "燃料科长:",foterCellStyle);
  196. 196 HSSFCell cell1 = row.createCell((short)6);
  197. 197 SheetFunc.createCellString(workBook, row, (short)6, "审核:",foterCellStyle);
  198. 198 HSSFCell cell2 = row.createCell((short)11);
  199. 199 SheetFunc.createCellString(workBook, row, (short)11, "制表:",foterCellStyle);
  200. 200 }
  201. 201 for(short r=1;r<2;r++)//
  202. 202 {
  203. 203 HSSFRow row=sheet.createRow(headRow+perRow+r);//
  204. 204 HSSFCell cell = row.createCell((short)6);
  205. 205 SheetFunc.createCellString(workBook, row, (short)6, "第"+numStr+"页",foterCellStyle);
  206. 206 HSSFCell cell2 = row.createCell((short)7);
  207. 207 SheetFunc.createCellString(workBook, row, (short)7, "共"+totalSheetNum+"页",foterCellStyle);
  208. 208 }
  209. 209 }
  210. 210
  211. 211 //最后一页处理
  212. 212 for(int num=addSheetNum;num<=addSheetNum;num++)
  213. 213 {
  214. 214 HSSFSheet sheet = workBook.getSheetAt(num);
  215. 215 for(short r=0;r<lastSheetRow;r++)
  216. 216 {
  217. 217 HSSFRow row=sheet.createRow(headRow+r);//
  218. 218 int temp=num*perRow+r;//减少循环中的计算量
  219. 219 for(short c=0;c<2;c++)
  220. 220 {
  221. 221 HSSFCell cell = row.createCell(c);//
  222. 222 SheetFunc.createCellString(workBook, row, c, sqlDataString[temp][c],cellStyle);
  223. 223 }
  224. 224 for(short c=2;c<7;c++)
  225. 225 {
  226. 226 HSSFCell cell = row.createCell(c);//
  227. 227 if(sqlDataInt[num*perRow+r][c-2] ==0)
  228. 228 {
  229. 229 SheetFunc.createCellString(workBook, row, c, " ",cellStyle);
  230. 230 }else{
  231. 231 SheetFunc.createCellInt(workBook, row, c,sqlDataInt[temp][c-2],cellStyle);
  232. 232 }
  233. 233 }
  234. 234
  235. 235 for(short c=7;c<12;c++)
  236. 236 {
  237. 237 HSSFCell cell = row.createCell(c);//
  238. 238 if(sqlDataFloat[num*perRow+r][c-7] == 0f)
  239. 239 {
  240. 240 SheetFunc.createCellString(workBook, row, c, " ",cellStyle);
  241. 241 }else{
  242. 242 SheetFunc.createCellFloat(workBook, row, c, sqlDataFloat[temp][c-7], cellStyle);
  243. 243 }
  244. 244 }
  245. 245 for(short c=12;c<13;c++)
  246. 246 {
  247. 247 HSSFCell cell = row.createCell(c);//
  248. 248 SheetFunc.createCellString(workBook, row, c, sqlDataString[temp][c-10],cellStyle);
  249. 249 }
  250. 250 }
  251. 251 for(int j=0;j<lastSheetRow;j=j+2)//合并行
  252. 252 {
  253. 253 sheet.addMergedRegion(new Region(7+j,(short)0,8+j,(short)0));
  254. 254 }
  255. 255
  256. 256 for(short r=0;r<1;r++)//
  257. 257 {
  258. 258 HSSFRow row=sheet.createRow(headRow+lastSheetRow+r);//
  259. 259 HSSFCell cell = row.createCell((short)0);
  260. 260 SheetFunc.createCellString(workBook, row, (short)0, "燃料科长:",foterCellStyle);
  261. 261 HSSFCell cell1 = row.createCell((short)6);
  262. 262 SheetFunc.createCellString(workBook, row, (short)6, "审核:",foterCellStyle);
  263. 263 HSSFCell cell2 = row.createCell((short)11);
  264. 264 SheetFunc.createCellString(workBook, row, (short)11, "制表:",foterCellStyle);
  265. 265 }
  266. 266 for(short r=1;r<2;r++)//
  267. 267 {
  268. 268 HSSFRow row=sheet.createRow(headRow+lastSheetRow+r);//
  269. 269 HSSFCell cell = row.createCell((short)6);
  270. 270 SheetFunc.createCellString(workBook, row, (short)6, "第"+totalSheetNum+"页",foterCellStyle);
  271. 271 HSSFCell cell2 = row.createCell((short)7);
  272. 272 SheetFunc.createCellString(workBook, row, (short)7, "共"+totalSheetNum+"页",foterCellStyle);
  273. 273 }
  274. 274 }
  275. 275 OutputStream os = new FileOutputStream(destFileName);
  276. 276 workBook.write(os);
  277. 277 is.close();
  278. 278 os.flush();
  279. 279 os.close();
  280. 280 request.setCharacterEncoding("UTF-8");
  281. 281 response.setCharacterEncoding("UTF-8");
  282. 282
  283. 283 response.setContentType("application/download;charset=utf-8");
  284. 284 String[] Name=destFileName.split("\\\\");
  285. 285 String FileName=Name[Name.length-1];
  286. 286 //response.setHeader("Content-disposition", "attachment;filename="+java.net.URLEncoder.encode(KB, "UTF-8")+".xls\"");
  287. 287 response.setHeader("Content-disposition", "attachment;filename=" + new String( FileName.getBytes("gb2312"), "ISO8859-1" ));
  288. 288
  289. 289 OutputStream os2 = response.getOutputStream();
  290. 290 //XLSTransformer
  291. 291 File tempFile = new File(destFileName);
  292. 292 FileInputStream fis = new FileInputStream(tempFile);
  293. 293 byte[] b = new byte[1024];
  294. 294 while(fis.read(b) != -1){
  295. 295 os2.write(b);
  296. 296 }
  297. 297 os2.flush();
  298. 298 fis.close();
  299. 299 os2.close();
  300. 300 tempFile.delete();
  301. 301 } catch (SQLException e1) {
  302. 302 // TODO Auto-generated catch block
  303. 303 e1.printStackTrace();
  304. 304 }
  305. 305 catch (Exception e) {
  306. 306 // TODO Auto-generated catch block
  307. 307 e.printStackTrace();
  308. 308 }
  309. 309 }
  310. 310 }

a024426992f084c2aadd47d457faed59.gif

SheetFunc.java

61f6444d7fa93a5e1da1c75b20038a5e.gif

a024426992f084c2aadd47d457faed59.gif

  1. 1 package tree;
  2. 2
  3. 3 import org.apache.poi.hssf.usermodel.HSSFCell;
  4. 4 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  5. 5 import org.apache.poi.hssf.usermodel.HSSFRow;
  6. 6 import org.apache.poi.hssf.usermodel.HSSFSheet;
  7. 7 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  8. 8 import org.apache.poi.hssf.util.Region;
  9. 9
  10. 10 public class SheetFunc {
  11. 11 public SheetFunc() {
  12. 12
  13. 13 }
  14. 14 private static String parseFormula(String pPOIFormula) {
  15. 15 final String cstReplaceString = "ATTR(semiVolatile)"; //$NON-NLS-1$
  16. 16 StringBuffer result = null;
  17. 17 int index;
  18. 18
  19. 19 result = new StringBuffer();
  20. 20 index = pPOIFormula.indexOf(cstReplaceString);
  21. 21 if (index >= 0) {
  22. 22 result.append(pPOIFormula.substring(0, index));
  23. 23 result.append(pPOIFormula.substring(index
  24. 24 + cstReplaceString.length()));
  25. 25 } else {
  26. 26 result.append(pPOIFormula);
  27. 27 }
  28. 28
  29. 29 return result.toString();
  30. 30 }
  31. 31
  32. 32 public static void copyRows(HSSFWorkbook wb, int pSourceSheetIndex,int pTargetSheetIndex, int pStartRow, int pEndRow, int pPosition)
  33. 33 {
  34. 34 HSSFRow sourceRow = null;
  35. 35 HSSFRow targetRow = null;
  36. 36 HSSFCell sourceCell = null;
  37. 37 HSSFCell targetCell = null;
  38. 38 HSSFSheet sourceSheet = null;
  39. 39 HSSFSheet targetSheet = null;
  40. 40 Region region = null;
  41. 41 int cType;
  42. 42 int i;
  43. 43 short j;
  44. 44 int targetRowFrom;
  45. 45 int targetRowTo;
  46. 46
  47. 47 if ((pStartRow == -1) || (pEndRow == -1)) {
  48. 48 return;
  49. 49 }
  50. 50 sourceSheet = wb.getSheetAt(pSourceSheetIndex);
  51. 51 targetSheet = wb.getSheetAt(pTargetSheetIndex);
  52. 52 // 拷贝合并的单元格
  53. 53 for (i = 0; i < sourceSheet.getNumMergedRegions(); i++) {
  54. 54 region = sourceSheet.getMergedRegionAt(i);
  55. 55 if ((region.getRowFrom() >= pStartRow)
  56. 56 && (region.getRowTo() <= pEndRow)) {
  57. 57 targetRowFrom = region.getRowFrom() - pStartRow + pPosition;
  58. 58 targetRowTo = region.getRowTo() - pStartRow + pPosition;
  59. 59 region.setRowFrom(targetRowFrom);
  60. 60 region.setRowTo(targetRowTo);
  61. 61 targetSheet.addMergedRegion(region);
  62. 62 }
  63. 63 }
  64. 64 // 设置列宽
  65. 65 for (i = pStartRow; i <= pEndRow; i++) {
  66. 66 sourceRow = sourceSheet.getRow(i);
  67. 67 if (sourceRow != null) {
  68. 68 for (j = sourceRow.getLastCellNum(); j > sourceRow
  69. 69 .getFirstCellNum(); j--) {
  70. 70 targetSheet
  71. 71 .setColumnWidth(j, sourceSheet.getColumnWidth(j));
  72. 72 targetSheet.setColumnHidden(j, false);
  73. 73 }
  74. 74 break;
  75. 75 }
  76. 76 }
  77. 77 // 拷贝行并填充数据
  78. 78 for (; i <= pEndRow; i++) {
  79. 79 sourceRow = sourceSheet.getRow(i);
  80. 80 if (sourceRow == null) {
  81. 81 continue;
  82. 82 }
  83. 83 targetRow = targetSheet.createRow(i - pStartRow + pPosition);
  84. 84 targetRow.setHeight(sourceRow.getHeight());
  85. 85 for (j = sourceRow.getFirstCellNum(); j < sourceRow
  86. 86 .getPhysicalNumberOfCells(); j++) {
  87. 87 sourceCell = sourceRow.getCell(j);
  88. 88 if (sourceCell == null) {
  89. 89 continue;
  90. 90 }
  91. 91 targetCell = targetRow.createCell(j);
  92. 92 targetCell.setEncoding(sourceCell.getEncoding());
  93. 93 targetCell.setCellStyle(sourceCell.getCellStyle());
  94. 94 cType = sourceCell.getCellType();
  95. 95 targetCell.setCellType(cType);
  96. 96 switch (cType) {
  97. 97 case HSSFCell.CELL_TYPE_BOOLEAN:
  98. 98 targetCell.setCellValue(sourceCell.getBooleanCellValue());
  99. 99 //System.out.println("--------TYPE_BOOLEAN:"+ targetCell.getBooleanCellValue());
  100. 100 break;
  101. 101 case HSSFCell.CELL_TYPE_ERROR:
  102. 102 targetCell.setCellErrorValue(sourceCell.getErrorCellValue());
  103. 103 //System.out.println("--------TYPE_ERROR:"+ targetCell.getErrorCellValue());
  104. 104 break;
  105. 105 case HSSFCell.CELL_TYPE_FORMULA:
  106. 106 // parseFormula这个函数的用途在后面说明
  107. 107 targetCell.setCellFormula(parseFormula(sourceCell.getCellFormula()));
  108. 108 //System.out.println("--------TYPE_FORMULA:"+ targetCell.getCellFormula());
  109. 109 break;
  110. 110 case HSSFCell.CELL_TYPE_NUMERIC:
  111. 111 targetCell.setCellValue(sourceCell.getNumericCellValue());
  112. 112 //System.out.println("--------TYPE_NUMERIC:"+ targetCell.getNumericCellValue());
  113. 113 break;
  114. 114 case HSSFCell.CELL_TYPE_STRING:
  115. 115 targetCell.setCellValue(sourceCell.getRichStringCellValue());
  116. 116 //System.out.println("--------TYPE_STRING:" + i+ targetCell.getRichStringCellValue());
  117. 117 break;
  118. 118 }
  119. 119 }
  120. 120 }
  121. 121 }
  122. 122 public static void createCellString(HSSFWorkbook wb, HSSFRow row, short col, String val,HSSFCellStyle cellstyle) {
  123. 123 HSSFCell cell = row.createCell(col);
  124. 124 cell.setCellValue(val);
  125. 125 cell.setCellStyle(cellstyle);
  126. 126 }
  127. 127 public static void createCellInt(HSSFWorkbook wb, HSSFRow row, short col, int val,HSSFCellStyle cellstyle) {
  128. 128 HSSFCell cell = row.createCell(col);
  129. 129 // cell.setEncoding(HSSFCell.ENCODING_UTF_16);
  130. 130 cell.setCellValue(val);
  131. 131 cell.setCellStyle(cellstyle);
  132. 132 }
  133. 133 public static void createCellFloat(HSSFWorkbook wb, HSSFRow row, short col, float val,HSSFCellStyle cellstyle) {
  134. 134 HSSFCell cell = row.createCell(col);
  135. 135 String valStr = String.valueOf(val);
  136. 136 double db=Double.parseDouble(valStr);
  137. 137 cell.setCellValue(db);
  138. 138 cell.setCellStyle(cellstyle);
  139. 139 }
  140. 140 }

7f0ad33b99055df687731d1c15c45edc.gif

Flex 报表导出按钮函数:

6f8131dd42544b03e26422e96154f498.gif

7c07bc587f0ccee489317a839241d235.gif

  1. 1 //输出报表按钮事件
  2. 2 private function onExport():void{
  3. 3 var sqlText:String="select KB,BYHLJ,JCMSL,CCSL,CCL,GHL,JCL,YD,YDZJE,KD,KDZJE,SPJE,BZ,GMDWDM from hc_jlykybb where to_char(YF,'yyyymm')='"+df.format(RQ.text)+"' order by GMDWDM,BYHLJ";
  4. 4 var url:String="http://"+FlexGlobals.topLevelApplication.datas.IP+":80/lcds/servlet/JlykybToExcel"; // 下面的方法是调用后台生成excel
  5. 5 var request:URLRequest = new URLRequest(url);
  6. 6 request.method="POST";
  7. 7 var variables:URLVariables = new URLVariables();
  8. 8 variables.SQL =encodeURI(sqlText);//传入的SQL语句;
  9. 9 variables.PERROW =encodeURI("36");//每页记录数
  10. 10 var today:Date=new Date();
  11. 11 var BSRQ:String=dfd.format(today);
  12. 12 var BBRQ:String=df.format(RQ.text);
  13. 13 variables.BSRQ=BSRQ;//20111227
  14. 14 variables.BBRQ=BBRQ;//200811需要传入的日期格式
  15. 15
  16. 16 variables.templateFileName=FlexGlobals.topLevelApplication.datas.xlsPath+"jcmjlykybb.xls";
  17. 17 var dateString:String = df.format(today);
  18. 18 var DestF:String="d:\\计量盈亏"+dateString+".xls";
  19. 19 variables.destFileName=encodeURI(DestF);
  20. 20 request.data = variables;
  21. 21 navigateToURL(request,"_blank");
  22. 22 }
  23. 23
  24. 24 import flexlib.events.SuperTabEvent;
  25. 25 protected function onExit():void{
  26. 26 dispatchEvent(new SuperTabEvent(SuperTabEvent.TAB_CLOSE,parentDocument.superTabNavigator.selectedIndex,true));
  27. 27 }

发表评论

表情:
评论列表 (有 0 条评论,201人围观)

还没有评论,来说两句吧...

相关阅读

    相关 报表excel导出实现代码

                最近好几张报表的excel导出功能,两个系统实现方法不一样,先把这两种方法记下来,方便以后复用^\_^             1.使用JSP导出ex

    相关 【机房收费】导出Excel报表

    前言     很多查询结果在MSHFlexGrid中显示后,我们还希望有那么一个独立的地方呈现这些数据,既清晰还可以进行一些编辑运算。方法有很多种,下面讲一下我是如何实现

    相关 php导出excel报表

    有时候某些大型的报表或者计算量很大的报表,经过nginx会超时导不出来的,这时候就得cli模式下运行了,方法兼容了cli模式和直接输出模式,然后能用代码说话的就不逼逼了,直接贴

    相关 ireport导出Excel报表的实现

    说明:本文以iReport-5.5.0为例。 提示:对于新手来说,可以先将本文通篇看一下,先行理解,然后再自己手动操作一回。文章中截图较多,看似繁琐,其实只是为了让新手参考而