ExportPkBusiness.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package com.medex.mdap.sm.exportpk.business;
  2. import javax.servlet.http.HttpServletResponse;
  3. import org.apache.poi.hssf.usermodel.HSSFCell;
  4. import org.apache.poi.hssf.usermodel.HSSFCellStyle;
  5. import org.apache.poi.hssf.usermodel.HSSFFont;
  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.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Service;
  11. import com.google.gson.JsonObject;
  12. import com.google.gson.JsonParser;
  13. import com.medex.mdap.base.msg.ObjectRestResponse;
  14. import com.medex.mdap.util.PrimaryKeyUtil;
  15. @Service
  16. public class ExportPkBusiness {
  17. @Autowired
  18. private PrimaryKeyUtil pkutil;
  19. //导出主键pk
  20. public ObjectRestResponse getpk (String json,HttpServletResponse response) throws Exception{
  21. String pk_group="";
  22. int count=0;
  23. if (json==null||json.equals("")) {
  24. throw new Exception("请输入导出条数和机构编码");
  25. }
  26. JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject();
  27. if (jsonObject.get("pk_group")!=null&&jsonObject.get("pk_group").getAsString().length()==4) {
  28. pk_group= jsonObject.get("pk_group").getAsString();//机构编码
  29. }else {
  30. throw new Exception("请输入机构编码或机构编码格式不正确");
  31. }
  32. if (jsonObject.get("count")!=null) {
  33. count= jsonObject.get("count").getAsInt();//导出条数
  34. }else {
  35. throw new Exception("请输入导出条数");
  36. }
  37. // 第一步,创建一个webbook,对应一个Excel文件
  38. HSSFWorkbook wb = new HSSFWorkbook();
  39. // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
  40. HSSFSheet sheet = wb.createSheet("主键");
  41. // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
  42. HSSFRow row = sheet.createRow((int) 0);
  43. // 第四步,创建单元格,并设置值表头 设置表头居中
  44. HSSFCellStyle style = wb.createCellStyle();
  45. style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
  46. HSSFFont font = wb.createFont();
  47. font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
  48. style.setFont(font);
  49. HSSFCell cell = row.createCell((short) 0);
  50. cell.setCellValue("主键");
  51. cell.setCellStyle(style);
  52. String[] pk = pkutil.getpks(pk_group,count);
  53. for (int i = 0; i < pk.length; i++) {
  54. row = sheet.createRow(i+1);
  55. row.createCell((short) 0).setCellValue(pk[i].toString());
  56. }
  57. // 第六步,将文件存到指定位置
  58. try
  59. {
  60. response.setContentType("application/octet-stream");
  61. response.setHeader("Content-disposition", "attachment;filename=" + "主键");
  62. response.flushBuffer();
  63. wb.write(response.getOutputStream());
  64. }
  65. catch (Exception e)
  66. {
  67. e.printStackTrace();
  68. }
  69. return null;
  70. }
  71. }