/**
**单元格值对象
**/
public class Cells { /***
* 行
*/
private int row; /**
* 列
*/
private int column; /**
* 单元格的值
*/
private Object val; public int getRow() {
return row;
} public void setRow(int row) {
this.row = row;
} public int getColumn() {
return column;
} public void setColumn(int column) {
this.column = column;
} public Object getVal() {
return val;
} public void setVal(Object val) {
this.val = val;
} public Cells(int row, int column, Object val) {
this.row = row;
this.column = column;
this.val = val;
} public Cells() {} }
/**
**表空间对象
**/
public class Sheet { private String sheetName; public String getSheetName() {
return sheetName;
} public void setSheetName(String sheetName) {
this.sheetName = sheetName;
} public List<Cells> getCells() {
return cells;
} public void setCells(List<Cells> cells) {
this.cells = cells;
} private List<Cells> cells=Lists.newArrayList(); public Sheet(String sheetName, List<Cells> cells) {
this.sheetName = sheetName;
this.cells = cells;
} public Sheet() {} }
 public final class ExcelUntil {

     /**
* 根据模板导出excel
* @param templatePath 模板路径
* @param sheets 设置sheet 表空间的单元格具体的值对象
* @param exportPath 导出路径
* @throws Exception
*/
@SuppressWarnings("resource")
public static void exportExcelByTemplate(String templatePath, List<Sheet> sheets, String exportPath)
throws Exception {
if (Strings.isStringEmpty(templatePath) || CollectionUtils.isEmpty(sheets) || Strings.isStringEmpty(exportPath)) {
return;
}
InputStream in = ExcelUntil.class.getResourceAsStream(templatePath);
POIFSFileSystem poifsFileSystem = new POIFSFileSystem(in);
HSSFWorkbook workbook = new HSSFWorkbook(poifsFileSystem);
for (int i = 0; i < sheets.size(); i++) {
HSSFSheet sheet = workbook.getSheetAt(i);
sheet.setForceFormulaRecalculation(true);
List<Cells> cells = sheets.get(i).getCells();
cellSetValue(sheet, cells);
}
FileOutputStream out = new FileOutputStream(exportPath);
workbook.write(out);
out.close();
} public static HSSFWorkbook exportExcel(String templatePath, List<Sheet> sheets, String exportPath)
throws Exception {
InputStream in = ExcelUntil.class.getResourceAsStream(templatePath);
POIFSFileSystem poifsFileSystem = new POIFSFileSystem(in);
HSSFWorkbook workbook = new HSSFWorkbook(poifsFileSystem);
for (int i = 0; i < sheets.size(); i++) {
HSSFSheet sheet = workbook.getSheetAt(i);
sheet.setForceFormulaRecalculation(true);
List<Cells> cells = sheets.get(i).getCells();
cellSetValue(sheet, cells);
}
return workbook; } /**
* 设置具体单元格的值
* @param sheet 具体表空间
* @param cells 设置的具体的单元格
*/
private static void cellSetValue(HSSFSheet sheet, List<Cells> cells) {
// 设置数据行列并设置值
Cells c = null;
Object val = null;
HSSFCell cell = null;
for (int i = 0; i < cells.size(); i++) {
c = cells.get(i);
if(c==null) {
continue;
}
val = c.getVal();
cell = sheet.getRow(c.getRow() - 1).getCell(c.getColumn() - 1);
if (val instanceof Integer) {
cell.setCellValue((Integer) val);
} else if (val instanceof Double) {
cell.setCellValue((Double) val);
} else if (val instanceof Date) {
cell.setCellValue((Date) val);
} else if (val instanceof Short) {
cell.setCellValue((short) val);
} else {
cell.setCellValue(val + "");
}
}
}
}

poi根据excel模板导出Excel的更多相关文章

  1. .Net NPOI 根据excel模板导出excel、直接生成excel

    一.根据Excel模板导出excel 1.导入NPOI.dll  2.DAL中添加类ExportExcel.cs using NPOI.SS.UserModel; using System; usin ...

  2. ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案 try.dot.net 的正确使用姿势 .Net NPOI 根据excel模板导出excel、直接生成excel .Net NPOI 上传excel文件、提交后台获取excel里的数据

    ASP.NET Core 2.2 : 十六.扒一扒新的Endpoint路由方案   ASP.NET Core 从2.2版本开始,采用了一个新的名为Endpoint的路由方案,与原来的方案在使用上差别不 ...

  3. 14. java基于excel模板导出excel=>使用jxls最新版(注意点)

    注意点:如下: jxls官网:http://jxls.sourceforge.net/getting_started.html

  4. NPOI复制模板导出Excel

    本人菜鸟实习生一枚,公司给我安排了一个excel导出功能.要求如下:1.导出excel文件有样式要求:2.导出excel包含一个或多个工作表:3.功能做活(我的理解就是excel样式以后可能会变方便维 ...

  5. kettle 使用excel模板导出数据

    通过excel进行高速开发报表: 建设思路: 1.首先制订相关的execl模板. 2.通过etl工具(kettle)能够高速的 将数据库中的数据按excel模板导出成新的excel就可以. 当中ket ...

  6. POI通过模板导出EXCEL文件

    一般的EXCEL导出使用POI先创建一个HSSFWorkbook,然后通过不断创建HSSFRow,HSSFCell后设置单元格内容便可以完成导出. 这次在项目中需要用到模板,导出的内容包括(1.模板中 ...

  7. apache poi根据模板导出excel

    需要预先新建编辑好一个excel文件,设置好样式. 编辑好输出的数据,根据excel坐标一一对应. 支持列表数据输出,列表中列合并. 代码如下: package com.icourt.util; im ...

  8. java实现excel模板导出

    一. 准备工作 1. 点击此下载相关开发工具 2. 将poi-3.8.jxls-core-1.0两个jar包放到工程中,并引用 3. 将excel模板runRecord.xls放到RunRecordB ...

  9. Java无模板导出Excel,Apache-POI插件实现

    开发环境 jdk 1.8 Maven 3.6 Tomcat 8.5 SpringBoot 2.1.4.RELEASE Apache-POI 3.6 Idea 注意: 我是在现有的基于SpringBoo ...

随机推荐

  1. CSS和层叠

    ##常见的CSS属性## color:red  设置元素内容的颜色 <br>text-align:center  设置文字的对齐方式(例:centeer 居中) <br>fon ...

  2. Java 之 JDK1.8之前日期时间类

    一.JDK1.8之前日期时间类 二. java.lang.System类 System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1 ...

  3. html书写行内元素时-tab和换行会在行内元素间引入间距

    目录 html文本中的控制字符会被解析为文本节点 书写行内元素时,换行符LF与水平制表符HT会引入莫名的元素间间隔 其他控制字符是否会引入间距的验证 html文本中的控制字符会被解析为文本节点 举例: ...

  4. QT在Mac OS上编译运行初体验

    QT是一个跨平台的框架,支持PC端(Windows.Linux和Mac OS)以及移动端(Android和IOS),之前的开发大都在Windows或者Ubuntu上,考虑到项目多平台支持性,本文对Ma ...

  5. php超时时间说明【转】

    一,http请求超时时间 可能出现的场景: 1,curl进程运行了一个世纪还木结束,curl的时候设置了超时时间 --connect-timeout 1000 2,operation timed ou ...

  6. TP5.0整合webuploader实现多图片上传功能

    在https://github.com/fex-team/webuploader 下载webuploader并解压,解压后放到public里面.其中我把解压缩后的文件夹改名为webuploader,放 ...

  7. Odoo中的env详解

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826382.html 一:environment environment类提供了对ORM对象的封装,同时提 ...

  8. MySQL的select详细介绍

    MySQL 查询数据 MySQL 数据库使用SQL SELECT语句来查询数据. 你可以通过 mysql> 命令提示窗口中在数据库中查询数据 语法 以下为在MySQL数据库中查询数据通用的 SE ...

  9. Unity 渲染教程(一):矩阵

    转载:http://gad.qq.com/program/translateview/7181958 创建立方体网格.· 支持缩放.位移和旋转. · 使用变换矩阵. · 创建简单的相机投影. 这是关于 ...

  10. jq node.js bootstrap

    1.node.js 网址:https://nodejs.org/en/ 用来通过下载node.js 来引用里面的npm 来实现对外部项目的下载 1.安装nodejs 自带了npm npm instal ...