Нет описания

H.java 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  1. //
  2. //package test;
  3. //
  4. //import org.apache.poi.hssf.usermodel.HSSFCell;
  5. //import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  6. //import org.apache.poi.hssf.usermodel.HSSFRow;
  7. //import org.apache.poi.hssf.usermodel.HSSFSheet;
  8. //import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  9. //import org.apache.poi.ss.usermodel.*;
  10. //import org.apache.poi.xssf.streaming.SXSSFWorkbook;
  11. //
  12. //import com.nianzai.base.dao.util.DAOHelper;
  13. //import com.nianzai.base.mvc.Context;
  14. //import com.nianzai.base.mvc.util.ClassUtil;
  15. //import com.nianzai.base.mvc.util.Utils;
  16. //import com.nianzai.base.mvc.view.ExcelView;
  17. //import com.nianzai.base.mvc.view.View;
  18. //import com.nianzai.util.DateTimeUtil;
  19. //import com.nianzai.util.Tools;
  20. //
  21. //import org.apache.poi.xssf.streaming.SXSSFSheet;
  22. //import org.apache.poi.xssf.streaming.SXSSFRow;
  23. //import org.apache.poi.xssf.streaming.SXSSFCell;
  24. //import java.io.FileOutputStream;
  25. //import java.io.IOException;
  26. //import java.io.OutputStream;
  27. //import java.lang.reflect.Method;
  28. //import java.util.ArrayList;
  29. //import java.util.Date;
  30. //import java.util.List;
  31. //import java.util.Map;
  32. //import java.util.TreeMap;
  33. //
  34. //import javax.servlet.ServletException;
  35. //import javax.servlet.annotation.WebServlet;
  36. //import javax.servlet.http.HttpServlet;
  37. //import javax.servlet.http.HttpServletRequest;
  38. //import javax.servlet.http.HttpServletResponse;
  39. //
  40. //@WebServlet(
  41. // urlPatterns = {"/H.do"},
  42. // loadOnStartup = 0,
  43. // asyncSupported = true
  44. // )
  45. //public class H extends HttpServlet {
  46. //
  47. // protected Map<String, String> parseParameter(HttpServletRequest request) {
  48. // Map<String, String> result = new TreeMap();
  49. // Map<String, String[]> map = request.getParameterMap();
  50. //
  51. // for(Map.Entry<String, String[]> entry : map.entrySet()) {
  52. // String k = (String)entry.getKey();
  53. // String v = "";
  54. // if (((String[])entry.getValue()).length <= 1) {
  55. // v = ((String[])entry.getValue())[0];
  56. // } else {
  57. // String[] var11;
  58. // for(String s : var11 = (String[])entry.getValue()) {
  59. // v = v + s + ",";
  60. // }
  61. //
  62. // if (v.length() > 0) {
  63. // v = v.substring(0, v.length() - 1);
  64. // }
  65. // }
  66. //
  67. // v = Utils.parafilter(Utils.escapeDollarBackslash(v));
  68. // result.put(k, v);
  69. // }
  70. //
  71. // result.put("ip", Utils.getIpAddress(request));
  72. // if (request.getHeader("m") != null) {
  73. // result.put("_json", request.getHeader("m"));
  74. // }
  75. //
  76. // return result;
  77. // }
  78. //
  79. // protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  80. // Map<String, String> paras = this.parseParameter(request);
  81. // Context context = new Context();
  82. // context.setParas(paras);
  83. // context.setRequest(request);
  84. // context.setResponse(response);
  85. // Map<String, Method> methodMap = ClassUtil.getMethodMap();
  86. // Map<String, Class<?>> classMap = ClassUtil.getClassMap();
  87. // if (methodMap == null) {
  88. // throw new RuntimeException("the methodMap is not inited");
  89. // } else {
  90. // String pathInfo = request.getRequestURI();
  91. // String contextPath = request.getContextPath();
  92. // if (!"".equals(contextPath)) {
  93. // pathInfo = pathInfo.replace(contextPath, "");
  94. // }
  95. //
  96. //
  97. // Method method = (Method)methodMap.get(pathInfo);
  98. //
  99. // try {
  100. //
  101. //
  102. // this.processExcel2(request, response);
  103. // } catch (Exception e) {
  104. // System.out.println(Tools.getExceptionMessage(e));
  105. // }
  106. // }
  107. //
  108. //
  109. // }
  110. //
  111. //
  112. // private void processExcel(HttpServletRequest request, HttpServletResponse response) throws IOException {
  113. //
  114. // List<Map<String, Object>> dataList = DAOHelper.find("device", "SELECT onum FROM `allorder`");
  115. // HSSFWorkbook wb = new HSSFWorkbook();
  116. // HSSFSheet sheet = wb.createSheet("导出数据");
  117. // HSSFCellStyle style = wb.createCellStyle();
  118. // style.setAlignment((short)2);
  119. //
  120. // for(int i = 0; i < dataList.size(); ++i) {
  121. // Map<String, Object> map = dataList.get(i);
  122. // Object[] obj = map.values().toArray();
  123. //
  124. // HSSFRow row = sheet.createRow(i);
  125. //
  126. // for(int j = 0; j < obj.length; ++j) {
  127. // HSSFCell cell = null;
  128. // cell = row.createCell(j, CellType.STRING);
  129. // if (!"".equals(obj[j]) && obj[j] != null) {
  130. // cell.setCellValue(obj[j].toString());
  131. // } else {
  132. // cell.setCellValue("");
  133. // }
  134. //
  135. // cell.setCellStyle(style);
  136. // sheet.autoSizeColumn(i);
  137. // }
  138. // }
  139. //
  140. // String fileName = "Excel-" + DateTimeUtil.longtime() + ".xls";
  141. // response.setContentType("application/vnd.ms-excel");
  142. // response.setHeader("Content-disposition", "attachment;filename=" + fileName);
  143. // OutputStream ouputStream = response.getOutputStream();
  144. // wb.write(ouputStream);
  145. // wb.close();
  146. // ouputStream.flush();
  147. // ouputStream.close();
  148. // }
  149. //
  150. //
  151. // private void processExcel2(HttpServletRequest request, HttpServletResponse response) throws IOException {
  152. //
  153. // List<Map<String, Object>> dataList = DAOHelper.find("device", "SELECT onum FROM `allorder`");
  154. // SXSSFWorkbook wb = new SXSSFWorkbook();
  155. // SXSSFSheet sheet = wb.createSheet("导出数据");
  156. // CellStyle style = wb.createCellStyle();
  157. // style.setAlignment((short)2);
  158. //
  159. //// sheet.trackAllColumnsForAutoSizing();
  160. //
  161. // for(int i = 0; i < dataList.size(); ++i) {
  162. // Map<String, Object> map = dataList.get(i);
  163. // Object[] obj = map.values().toArray();
  164. //
  165. // SXSSFRow row = sheet.createRow(i);
  166. //
  167. // for(int j = 0; j < obj.length; ++j) {
  168. // SXSSFCell cell = null;
  169. // cell = row.createCell(j, CellType.STRING);
  170. // if (!"".equals(obj[j]) && obj[j] != null) {
  171. // cell.setCellValue(obj[j].toString());
  172. // } else {
  173. // cell.setCellValue("");
  174. // }
  175. //
  176. // cell.setCellStyle(style);
  177. //// sheet.autoSizeColumn(i);
  178. // }
  179. // }
  180. //
  181. // String fileName = "Excel-" + DateTimeUtil.longtime() + ".xls";
  182. // response.setContentType("application/vnd.ms-excel");
  183. // response.setHeader("Content-disposition", "attachment;filename=" + fileName);
  184. // OutputStream ouputStream = response.getOutputStream();
  185. // wb.write(ouputStream);
  186. // wb.close();
  187. // ouputStream.flush();
  188. // ouputStream.close();
  189. // }
  190. //
  191. //
  192. //
  193. // public static void main(String[] args) {
  194. // try {
  195. // // 导出10万行测试数据
  196. // exportLargeExcel("e:\\deviceinbase\\export_data.xlsx", 100000);
  197. // System.out.println("Excel导出完成!");
  198. // } catch (IOException e) {
  199. // System.err.println("导出失败:" + e.getMessage());
  200. // e.printStackTrace();
  201. // }
  202. // }
  203. //
  204. // /**
  205. // * 使用SXSSFWorkbook导出大数据量Excel
  206. // */
  207. // public static void exportLargeExcel(String fileName, int rowCount) throws IOException {
  208. // long startTime = System.currentTimeMillis();
  209. //
  210. // // 创建SXSSFWorkbook,设置窗口大小为100行
  211. // // 内存中只保留100行数据,超出部分写入临时文件
  212. // HSSFWorkbook workbook = new HSSFWorkbook();
  213. //
  214. // // 可选:压缩临时文件以减少磁盘占用
  215. //// workbook.setCompressTempFiles(true);
  216. //
  217. // try {
  218. // // 创建工作表
  219. // HSSFSheet sheet = workbook.createSheet("大数据导出");
  220. //
  221. // // 创建表头
  222. // createHeaderRow(sheet);
  223. //
  224. // // 批量生成数据行
  225. // for (int i = 0; i < rowCount; i++) {
  226. // // 每1000行输出一次进度
  227. // if (i % 1000 == 0) {
  228. // System.out.println("正在生成第 " + i + " 行数据...");
  229. // }
  230. //
  231. // // 创建数据行
  232. // createDataRow(sheet, i + 1, i);
  233. // }
  234. //
  235. // // 自动调整列宽
  236. // autoSizeColumns(sheet, 5);
  237. //
  238. // // 写入文件
  239. // try (FileOutputStream out = new FileOutputStream(fileName)) {
  240. // workbook.write(out);
  241. // }
  242. //
  243. // long endTime = System.currentTimeMillis();
  244. // System.out.println("导出完成!总行数:" + rowCount +
  245. // ",耗时:" + (endTime - startTime) + "ms");
  246. //
  247. // } finally {
  248. // // 重要:清理临时文件
  249. //// workbook.dispose();
  250. // workbook.close();
  251. // }
  252. // }
  253. //
  254. // /**
  255. // * 创建表头行
  256. // */
  257. // private static void createHeaderRow(HSSFSheet sheet) {
  258. // HSSFRow headerRow = sheet.createRow(0);
  259. //
  260. // String[] headers = {"序号", "姓名", "年龄", "部门", "入职日期"};
  261. //
  262. // CellStyle headerStyle = createHeaderStyle(sheet.getWorkbook());
  263. //
  264. // for (int i = 0; i < headers.length; i++) {
  265. // HSSFCell cell = headerRow.createCell(i);
  266. // cell.setCellValue(headers[i]);
  267. // cell.setCellStyle(headerStyle);
  268. // }
  269. // }
  270. //
  271. // /**
  272. // * 创建数据行
  273. // */
  274. // private static void createDataRow(HSSFSheet sheet, int rowIndex, int dataIndex) {
  275. // HSSFRow row = sheet.createRow(rowIndex);
  276. //
  277. // // 序号
  278. // row.createCell(0).setCellValue(dataIndex + 1);
  279. //
  280. // // 姓名
  281. // row.createCell(1).setCellValue("员工" + (dataIndex + 1));
  282. //
  283. // // 年龄
  284. // row.createCell(2).setCellValue(20 + (dataIndex % 40));
  285. //
  286. // // 部门
  287. // String[] departments = {"技术部", "销售部", "人事部", "财务部", "市场部"};
  288. // row.createCell(3).setCellValue(departments[dataIndex % departments.length]);
  289. //
  290. // // 入职日期
  291. // row.createCell(4).setCellValue(new Date());
  292. // }
  293. //
  294. // /**
  295. // * 创建表头样式
  296. // */
  297. // private static CellStyle createHeaderStyle(Workbook workbook) {
  298. // CellStyle style = workbook.createCellStyle();
  299. //
  300. // // 设置背景色
  301. // style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
  302. // style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
  303. //
  304. // // 设置边框
  305. // style.setBorderBottom(BorderStyle.THIN);
  306. // style.setBorderTop(BorderStyle.THIN);
  307. // style.setBorderLeft(BorderStyle.THIN);
  308. // style.setBorderRight(BorderStyle.THIN);
  309. //
  310. // // 设置字体
  311. // Font font = workbook.createFont();
  312. // font.setBold(true);
  313. // style.setFont(font);
  314. //
  315. // return style;
  316. // }
  317. //
  318. // /**
  319. // * 自动调整列宽
  320. // */
  321. // private static void autoSizeColumns(HSSFSheet sheet, int columnCount) {
  322. // for (int i = 0; i < columnCount; i++) {
  323. //// sheet.trackColumnForAutoSizing(i);
  324. // sheet.autoSizeColumn(i);
  325. // }
  326. // }
  327. //}