最近工作中有导入导出的工作,在网上找了半天也没找个所以然,所以在此总结下。新手上路,请多指教!
首先引入几个jar包
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>3.3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.15</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<!--也要引入lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
然后引用两个工具类
package com.hyit.appdev.util;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.nio.charset.Charset;
/**
* 网页导出工具类
*/
@Slf4j
public class ExportUtil {
private final static int buffer_size = 1024 * 10;
/**
* 导出excel
*
* @param response
* @param workbook
* @param fileName
* @throws IOException
*/
public static void export(HttpServletResponse response, XSSFWorkbook workbook, String fileName) throws IOException {
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition",
"attachment;fileName=" + URLEncoder.encode(fileName, Charset.forName("UTF-8").toString()));
OutputStream outputStream = null;
try {
outputStream = response.getOutputStream();
outputStream.flush();
workbook.write(outputStream);
} catch (IOException e) {
log.error("output is closed");
} finally {
IOUtils.closeQuietly(outputStream);
}
}
/**
* 导出csv
*
* @param response
* @param data
* @param fileName
* @throws UnsupportedEncodingException
*/
public static void export(HttpServletResponse response, StringBuilder data, String fileName) throws UnsupportedEncodingException {
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition",
"attachment;fileName=" + URLEncoder.encode(fileName, Charset.forName("UTF-8").toString()));
char[] buffer = new char[buffer_size];
InputStream is = null;
InputStreamReader isr = null;
OutputStream os = null;