springboot+mybatis excel导出

╰半夏微凉° 2023-08-17 15:32 150阅读 0赞
  1. //controller page
  2. import cn.asiic.labor.core.utils.Servlets;
  3. import cn.asiic.labor.table.entity.ProjMain;
  4. import cn.asiic.labor.table.entity.ProjMainInt;
  5. import cn.asiic.labor.table.service.ProjMainService;
  6. import cn.asiic.sdk.excel.ExcelWriter;
  7. import com.aspose.cells.SaveFormat;
  8. import com.aspose.cells.Workbook;
  9. import org.springframework.data.domain.Page;
  10. import org.springframework.data.domain.Pageable;
  11. import org.springframework.web.bind.annotation.GetMapping;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RestController;
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16. import java.io.UnsupportedEncodingException;
  17. import java.time.LocalDate;
  18. import java.util.List;
  19. @GetMapping("/excel")
  20. public void exprotExcel(HttpServletRequest request, HttpServletResponse response,ProjMainInt projMainInt) throws Exception {
  21. List<ProjMain> perms = projMainService.query(projMainInt);
  22. Workbook workbook = ExcelWriter.wirteData(perms, ProjMain.class);
  23. Servlets.setFileDownloadHeader(request, response, "物料主数据" + LocalDate.now() + ".xls");
  24. workbook.save(response.getOutputStream(), SaveFormat.EXCEL_97_TO_2003);
  25. }
  26. //service page
  27. import cn.asiic.labor.core.utils.PageUtils;
  28. import cn.asiic.labor.table.entity.ProjMain;
  29. import cn.asiic.labor.table.entity.ProjMainInt;
  30. import cn.asiic.labor.table.repository.ProjMainRepository;
  31. import org.springframework.data.domain.Page;
  32. import org.springframework.data.domain.Pageable;
  33. import org.springframework.stereotype.Service;
  34. import org.springframework.transaction.annotation.Transactional;
  35. import java.util.List;
  36. @Transactional(readOnly = true)
  37. public List<ProjMain> query(ProjMainInt projMainInt){
  38. setAllSelectValue(projMainInt);
  39. List<ProjMain> list=projMainRepository.getProjMain(projMainInt);
  40. return list;
  41. }
  42. //repository page
  43. package cn.asiic.labor.table.repository;
  44. import cn.asiic.labor.table.entity.ProjMain;
  45. import cn.asiic.labor.table.entity.ProjMainInt;
  46. import org.apache.ibatis.annotations.Mapper;
  47. import java.util.List;
  48. @Mapper
  49. public interface ProjMainRepository {
  50. List<ProjMain> getProjMain(ProjMainInt projMainInt);
  51. }
  52. //
  53. package cn.asiic.labor.table.entity;
  54. import cn.asiic.sdk.excel.annotation.ExcelField;
  55. import lombok.Data;
  56. @Data
  57. public class ProjMain {
  58. @ExcelField(title = "序号")
  59. private int id;
  60. @ExcelField(title = "项目编码")
  61. private String projcode;
  62. @ExcelField(title = "项目名称")
  63. private String projname;
  64. @ExcelField(title = "年度")
  65. private String projyear;
  66. private String protypecode;
  67. @ExcelField(title = "项目类别")
  68. private String protypename;
  69. @ExcelField(title = "作业内容")
  70. private String projworkcontent;
  71. @ExcelField(title = "定员人数")
  72. private String projpersoncount;
  73. @ExcelField(title = "项目总数")
  74. private String projmoney;
  75. private String proorgcode;
  76. @ExcelField(title = "用工单位")
  77. private String proorgname;
  78. private String prostatuecode;
  79. @ExcelField(title = "项目状态")
  80. private String prostatuename;
  81. public int getId() {
  82. return id;
  83. }
  84. public void setId(int id) {
  85. this.id = id;
  86. }
  87. public String getProjcode() {
  88. return projcode;
  89. }
  90. public void setProjcode(String projcode) {
  91. this.projcode = projcode;
  92. }
  93. public String getProjname() {
  94. return projname;
  95. }
  96. public void setProjname(String projname) {
  97. this.projname = projname;
  98. }
  99. public String getProjyear() {
  100. return projyear;
  101. }
  102. public void setProjyear(String projyear) {
  103. this.projyear = projyear;
  104. }
  105. public String getProtypecode() {
  106. return protypecode;
  107. }
  108. public void setProtypecode(String protypecode) {
  109. this.protypecode = protypecode;
  110. }
  111. public String getProtypename() {
  112. return protypename;
  113. }
  114. public void setProtypename(String protypename) {
  115. this.protypename = protypename;
  116. }
  117. public String getProjworkcontent() {
  118. return projworkcontent;
  119. }
  120. public void setProjworkcontent(String projworkcontent) {
  121. this.projworkcontent = projworkcontent;
  122. }
  123. public String getProjpersoncount() {
  124. return projpersoncount;
  125. }
  126. public void setProjpersoncount(String projpersoncount) {
  127. this.projpersoncount = projpersoncount;
  128. }
  129. public String getProjmoney() {
  130. return projmoney;
  131. }
  132. public void setProjmoney(String projmoney) {
  133. this.projmoney = projmoney;
  134. }
  135. public String getProorgcode() {
  136. return proorgcode;
  137. }
  138. public void setProorgcode(String proorgcode) {
  139. this.proorgcode = proorgcode;
  140. }
  141. public String getProorgname() {
  142. return proorgname;
  143. }
  144. public void setProorgname(String proorgname) {
  145. this.proorgname = proorgname;
  146. }
  147. public String getProstatuecode() {
  148. return prostatuecode;
  149. }
  150. public void setProstatuecode(String prostatuecode) {
  151. this.prostatuecode = prostatuecode;
  152. }
  153. public String getProstatuename() {
  154. return prostatuename;
  155. }
  156. public void setProstatuename(String prostatuename) {
  157. this.prostatuename = prostatuename;
  158. }
  159. }
  160. // mybatis
  161. <?xml version="1.0" encoding="UTF-8" ?><!--create by newange_hrb in 2019/09/24-->
  162. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  163. <mapper namespace="cn.asiic.labor.table.repository.ProjMainRepository">
  164. <select id="getProjMain" resultType="cn.asiic.labor.table.entity.ProjMain">
  165. select p.ID as id,
  166. p.PROJ_CODE as projcode,
  167. p.PROJ_NAME as projname,
  168. p.PROJ_YEAR as projyear,
  169. p.PROJ_TYPE_CODE as protypecode,
  170. p.PROJ_TYPE_NAME as protypename,
  171. p.PROJ_WORK_CONTENT as projworkcontent,
  172. p.PROJ_PERSON_COUNT as projpersoncount,
  173. p.PROJ_MONEY as projmoney,
  174. p.PROJ_ORG_CODE as proorgcode,
  175. PROJ_ORG_NAME as proorgname,
  176. p.PROJ_STATUS_CODE as prostatuecode,
  177. p.PROJ_STATUS_NAME as prostatuename
  178. from proj_main as p
  179. where p.PROJ_YEAR like concat('%',#{year},'%')
  180. and p.PROJ_ORG_CODE like concat('%',#{userorg},'%')
  181. and p.PROJ_TYPE_CODE like concat('%',#{proclass},'%')
  182. and p.PROJ_STATUS_CODE like concat('%',#{prostatue},'%')
  183. and p.PROJ_CODE like concat('%',#{projcode},'%')
  184. and p.PROJ_NAME like concat('%', #{projname},'%')
  185. </select>
  186. </mapper>

发表评论

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

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

相关阅读