java使用POI实现excel文件的导入和导出(通用方法)

说明:

1、文件导出功能:

通过反射获取实体类的属性名和属性值,写入文件是第一行为属性名,从第二行开始为属性值,调用时只需传入一个任意实体集合(List)即可。

2、文件导入功能

文件导入功能需要定义一个实体类用于接受解析excel后的内容。package com.cz.excel; import com.cz.model.TestCase; import org.apache.poi.hpsf.DocumentSummaryInformation; import org.apache.poi.hpsf.SummaryInformation; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.FillPatternType; import org.apache.poi.ss.usermodel.IndexedColors; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.multipart.MultipartFile; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; import java.util.Date; import java.util.List; /**  * 工具类,用于文件上传、下载、解析  * @program: PostGirl-panent  * @description: PoiUtils  * @author: Cheng Zhi  * @create: 2021-02-28 09:57  **/ public class PoiUtils {/**      * 将对象集合导出到excel      * @param list      * @param      * @return      */     public static  ResponseEntity exportToExcel(List list) {// 1、创建一个excel文档         HSSFWorkbook workbook = new HSSFWorkbook();         // 2、创建文档摘要         workbook.createInformationProperties();         // 3、获取并配置文档摘要信息         DocumentSummaryInformation docInfo = workbook.getDocumentSummaryInformation();         // 文档类别         docInfo.setCategory("文档类别");         // 文档管理员         docInfo.setManager("PostGirl");         // 设置公司信息         docInfo.setCompany("www.postgirl.com");         // 4、获取文档摘要信息         SummaryInformation summaryInformation = workbook.getSummaryInformation();         // 文档标题         summaryInformation.setTitle("文档标题");         // 文档作者         summaryInformation.setAuthor("PostGirl");         // 备注信息         summaryInformation.setComments("本文档由 PostGirl 提供");         // 5、创建样式         // 创建标题行的样式         HSSFCellStyle headerStyle = workbook.createCellStyle();         headerStyle.setFillForegroundColor(IndexedColors.GREEN.getIndex()); // 背景颜色         headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); // 填充模式         HSSFSheet sheet = workbook.createSheet();// 不传name 默认为sheet1         // 6、创建标题行 第一行数据         // 只循环一次目的是将对象名写入到excel标题上         for (T t : list) {HSSFRow row = sheet.createRow(0);             String[] fieldNames = getFiledNames(t);             for (int i=0; i();         TestCase testCase = null;         try {// 1、创建一个workbook对象             HSSFWorkbook workbook = new HSSFWorkbook(file.getInputStream());             // 2、获取workboot中表单的数量             int numberOfSheets = workbook.getNumberOfSheets();             for (int i=0; i= 'A' && str.charAt(0) <= 'Z') {return str;         }         char[] ch = str.toCharArray();         ch[0] -= 32;         return String.valueOf(ch);     } }来源:https://www.icode9.com/content-1-874551.html

(0)

相关推荐