点击jsp的链接,然后下载excel文件。excel文件是存在web-inf下面的,可以往里面写入文本,再下载。
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;
@WebServlet(name = "DownloadServerFileServlet")
public class DownloadServerExcelFileServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//找到项目位置
String path = this.getServletContext().getRealPath("");
//创建hssf对象
XSSFWorkbook book = new XSSFWorkbook(new FileInputStream(new File(path + "/WEB-INF/123.xlsx")));
//获取123.xlsx的第一个sheet
XSSFSheet sheet = book.getSheetAt(0);
//在123.xlsx的第一个sheet创建一个空行(第一行,下标从0开始)
XSSFRow row = sheet.createRow(0);
//在第一行创建第一个单元格(第一列,下标哦才能够0开始)
XSSFCell cell = row.createCell(0);
cell.setCellValue("123");
//定义临时字节数组
byte[] b = new byte[1024];
//告诉历览器我要返回一个文件,你去下载吧
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("123.xlsx", "UTF-8"));
//输出流
ServletOutputStream servletOutputStream = response.getOutputStream();
book.write(servletOutputStream);
//关闭两个流
servletOutputStream.close();
}
}