POI-Excel导出直接下载(XSSFSheet)

读取的是java配置文件里面的excel模板文件

this.getClass().getClassLoader().getResource("static/CentralChinaExcleTemplate.xlsx").getPath();

工具类代码

public void ExportExcel(HttpServletRequest request, HttpServletResponse response, String date) throws IOException {

//1.加载Excel模板文件(文件路径按自己的存放路径填写)

String path = this.getClass().getClassLoader().getResource("static/CentralChinaExcleTemplate.xlsx").getPath();

path = path.substring(1);

File file = new File(path);

XSSFSheet sheet = null;

Workbook workbook = WorkbookFactory.create(file);

Sheet sheetAt = workbook.getSheetAt(0);

try (InputStream inputStream = new FileInputStream(file);

XSSFWorkbook xwb = new XSSFWorkbook(inputStream)) {

sheet = xwb.getSheetAt(0);

assert sheet != null;

XSSFCellStyle cellStyle = xwb.createCellStyle();

cellStyle.getFont().setFontHeightInPoints((short) 14);

CellStyle cellStyleLeft = workbook.createCellStyle();

cellStyleLeft.setAlignment(HorizontalAlignment.LEFT);

cellStyleLeft.setVerticalAlignment(VerticalAlignment.TOP);

//设置单元格边框

cellStyle.setBorderBottom(BorderStyle.THIN);

cellStyle.setBorderLeft(BorderStyle.THIN);

cellStyle.setBorderRight(BorderStyle.THIN);

cellStyle.setBorderTop(BorderStyle.THIN);

//设置居中

cellStyle.setAlignment(HorizontalAlignment.CENTER);

cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);

XSSFRow row = sheet.getRow(i);

//columnindex 意思为第几列的数据 1代表读取第六行第2列的数据

XSSFCell cell = null;

Row atRow = sheetAt.getRow(1);

// 生成第一行数据

if (i == 0) {

row = sheet.getRow(0);

cell = row.createCell(0);

cell.setCellStyle(cellStyle);

cell.setCellValue("月度环保统计报表(" + date + ")");

}

// 设置生成的Excel的文件名,并以中文进行编码

response.reset();

response.setHeader("Access-Control-Allow-Origin","*");

response.setContentType("application/msexcel");

response.setContentType("text/html; charset=UTF-8");

response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("月报数据.xlsx", "UTF-8"));

OutputStream osOut = response.getOutputStream();

// 将指定的字节写入此输出流

xwb.write(osOut);

// 刷新此输出流并强制将所有缓冲的输出字节被写出

osOut.flush();

// 关闭流

osOut.close();

} catch (IOException e) {

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Apache POI框架来实现Java中的POI导出Excel功能,以下是一个示例代码: ``` import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelExporter { public static void main(String[] args) { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet("Sample sheet"); Object[][] data = { {"John", 28}, {"Doe", 30}, {"William", 35}, {"Alex", 21}, {"Lucas", 18}, }; int rowNum = 0; System.out.println("Creating excel"); for (Object[] rowData : data) { Row row = sheet.createRow(rowNum++); int columnNum = 0; for (Object field : rowData) { Cell cell = row.createCell(columnNum++); if (field instanceof String) { cell.setCellValue((String) field); } else if (field instanceof Integer) { cell.setCellValue((Integer) field); } } } try { FileOutputStream outputStream = new FileOutputStream("sample.xlsx"); workbook.write(outputStream); outputStream.close(); System.out.println("Excel created successfully"); } catch (IOException e) { e.printStackTrace(); } } } ``` 这个代码使用了XSSFWorkbook类来创建一个Excel工作簿,然后使用createSheet()方法在工作簿中创建一个新的表单。之后,我们定义了一个包含数据的二维数组,并将数据插入表单中。最后,我们使用FileOutputStream类将文件输出到磁盘上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值