zoukankan      html  css  js  c++  java
  • java生成Excel文件,下载

    1. pom引入poi的maven依赖

       <dependency>
       	<groupId>org.apache.poi</groupId>
       	<artifactId>poi</artifactId>
       	<version>3.15</version>
       </dependency>
      
    2. 单元格的创建,设置样式和赋值

       package com.yl;
       
       import java.io.FileOutputStream;
       import java.io.IOException;
       
       import org.apache.poi.hssf.usermodel.HSSFCell;
       import org.apache.poi.hssf.usermodel.HSSFCellStyle;
       import org.apache.poi.hssf.usermodel.HSSFRow;
       import org.apache.poi.hssf.usermodel.HSSFSheet;
       import org.apache.poi.hssf.usermodel.HSSFWorkbook;
       import org.apache.poi.hssf.util.CellRangeAddress;
       
       @SuppressWarnings("deprecation")
       public class Book1 {
       
       	public static void main(String[] args) {
       		HSSFWorkbook workbook = new HSSFWorkbook(); // 创建一个excel
       		HSSFSheet sheet = workbook.createSheet("sheet1");// 新建sheet页
       
       		HSSFCellStyle cellStyle = workbook.createCellStyle(); // 新建单元格样式
       		cellStyle.setFillForegroundColor((short) 13);// 设置背景色
       		cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
       		cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中
       		cellStyle.setWrapText(true);// 设置自动换行
       
       		HSSFRow titleRow = sheet.createRow(0);
       		CellRangeAddress cra1 = new CellRangeAddress(0, 0, 0, 5);
       		sheet.addMergedRegion(cra1);
       		titleRow.createCell(0).setCellValue("haha1");
       		CellRangeAddress cra2 = new CellRangeAddress(0, 0, 6, 11);
       		sheet.addMergedRegion(cra2);
       		titleRow.createCell(6).setCellValue("haha2");
       		CellRangeAddress cra3 = new CellRangeAddress(0, 0, 12, 17);
       		sheet.addMergedRegion(cra3);
       		titleRow.createCell(12).setCellValue("haha3");
       		CellRangeAddress cra4 = new CellRangeAddress(0, 0, 18, 23);
       		sheet.addMergedRegion(cra4);
       		titleRow.createCell(18).setCellValue("haha4");
       		CellRangeAddress cra5 = new CellRangeAddress(0, 0, 24, 29);
       		sheet.addMergedRegion(cra5);
       
       		titleRow.createCell(24).setCellValue("haha5");
       
       		HSSFRow row = sheet.createRow(1);
       		// 参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
       		CellRangeAddress region1 = new CellRangeAddress(1, 5, 0, 5);
       
       		sheet.addMergedRegion(region1);
       		HSSFCell cellB1 = row.createCell(0);
       		cellB1.setCellValue("B1");
       
       		CellRangeAddress region2 = new CellRangeAddress(1, 5, 6, 11);
       		sheet.addMergedRegion(region2);
       		// HSSFRow row1 = sheet.createRow(0);//不要再重新创建行数了,这样会把之前填充的数据删除掉!
       		HSSFCell cellB2 = row.createCell(6);
       		cellB2.setCellValue("B2");
       
       		CellRangeAddress region3 = new CellRangeAddress(1, 5, 12, 17);
       		sheet.addMergedRegion(region3);
       		// HSSFRow row1 = sheet.createRow(0);//不要再重新创建行数了,这样会把之前填充的数据删除掉!
       		HSSFCell cellB3 = row.createCell(12);
       		cellB3.setCellValue("B3");
       
       		CellRangeAddress region4 = new CellRangeAddress(1, 5, 18, 23);
       		sheet.addMergedRegion(region4);
       		// HSSFRow row1 = sheet.createRow(0);//不要再重新创建行数了,这样会把之前填充的数据删除掉!
       		HSSFCell cellB4 = row.createCell(18);
       		cellB4.setCellValue("B4");
       
       		// 输出到本地
       		String excelName = "myExcel.xls";
       		FileOutputStream out = null;
       		try {
       			out = new FileOutputStream(excelName);
       			workbook.write(out);
       			out.flush();
       			out.close();
       		} catch (Exception e) {
       			e.printStackTrace();
       		} finally {
       			if (out != null)
       				try {
       					out.close();
       				} catch (IOException e) {
       					e.printStackTrace();
       				}
       			out = null;
       			System.out.println("导出成功");
       		}
       
       	}
       
       }
      
    3. 将文件在网页上导出:

       // POI导出流文件下载
       public static void downloadExcel(HSSFWorkbook workbook, HttpServletResponse response, String filename)
       		throws IOException {
       	try {
       		OutputStream out = response.getOutputStream();
       		response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
       		response.setContentType("application/msexcel;charset=UTF-8");
       		workbook.write(out);
       		out.flush();
       		out.close();
       	} catch (IOException e) {
       		e.printStackTrace();
       	}
       }
  • 相关阅读:
    CF终于上紫了。。。
    CF567F/51nod2522 上下序列
    bzoj 前100题计划
    CF1110G Tree-Tac-Toe 博弈论、构造
    BZOJ4816 SDOI2017 数字表格 莫比乌斯反演
    UOJ400/LOJ2553 CTSC2018 暴力写挂 边分治、虚树
    Luogu4774 NOI2018 屠龙勇士 ExCRT
    CF1039D You Are Given a Tree 根号分治、二分、贪心
    CF1056E Check Transcription 字符串哈希
    Luogu4345 SHOI2015 超能粒子炮·改 Lucas、数位DP
  • 原文地址:https://www.cnblogs.com/esileme/p/7522282.html
Copyright © 2011-2022 走看看