java使用POI读取excel模版并向固定表格里填写数据详解:public class ExportExcelDemo {

private HSSFWorkbook workbook = null;

/**

* 显示的导出表的标题

*/

private String title;

/**

* 导出表的列名

*/

private String[] rowName;

private List dataList = new ArrayList<>();

/**

* 构造方法,传入要导出的数据

*

* @param title

* @param rowName

* @param dataList

*/

public ExportExcelDemo(String title, String[] rowName, List dataList) {

this.dataList = dataList;

this.rowName = rowName;

this.title = title;

}

/**

* 判断文件的sheet是否存在

* @param filePath      文件路径

* @param sheetName     表格索引名

* @return

*/

public boolean sheetExist(String filePath,String sheetName){

boolean flag = false;

File file = new File(filePath);

if(file.exists()) {    //文件存在

//创建workbook

try {

workbook = new HSSFWorkbook(new FileInputStream(file));

//添加Worksheet(不添加sheet时生成的xls文件打开时会报错)

HSSFSheet sheet = workbook.getSheet(sheetName);

if(sheet!=null)

flag = true;

} catch (Exception e) {

e.printStackTrace();

}

}else{  //文件不存在

flag =false;

}

return flag;

}

/**

*

*(2003 xls后缀 导出)

* @param TODO

* @return void 返回类型

* @author xsw

* @2016-12-7上午10:44:00

*/

public static void createXLS(String importFilePath,String exportFilePath) throws IOException{

try {

//excel模板路径

File fi=new File(importFilePath);

POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(fi));

//读取excel模板

HSSFWorkbook wb = new HSSFWorkbook(fs);

//读取了模板内所有sheet内容

HSSFSheet sheet = wb.getSheetAt(0);

//如果这行没有了,整个公式都不会有自动计算的效果的

sheet.setForceFormulaRecalculation(true);

//在相应的单元格进行赋值

HSSFCell cell = sheet.getRow(11).getCell(6);//第11行 第6列

cell.setCellValue(1);

HSSFCell cell2 = sheet.getRow(11).getCell(7);

cell2.setCellValue(2);

sheet.getRow(12).getCell(6).setCellValue(12);

sheet.getRow(12).getCell(7).setCellValue(12);

//修改模板内容导出新模板

FileOutputStream out = new FileOutputStream(exportFilePath);

wb.write(out);

out.close();

}catch (Exception e) {

System.out.println("文件读取错误!");

}

}

/**

*

*(2007 xlsx后缀 导出)

* @param

* @return void 返回类型

* @author xsw

* @2016-12-7上午10:44:30

*/

public static void createXLSX(String importFilePath,String exportFilePath) throws IOException{

//excel模板路径

File fi=new File(importFilePath);

InputStream in = new FileInputStream(fi);

//读取excel模板

XSSFWorkbook wb = new XSSFWorkbook(in);

//读取了模板内所有sheet内容

XSSFSheet sheet = wb.getSheetAt(0);

//如果这行没有了,整个公式都不会有自动计算的效果的

sheet.setForceFormulaRecalculation(true);

//在相应的单元格进行赋值

XSSFCell cell = sheet.getRow(11).getCell(6);//第12行 第7列

cell.setCellValue(1);

XSSFCell cell2 = sheet.getRow(11).getCell(7);

cell2.setCellValue(2);

sheet.getRow(12).getCell(6).setCellValue(3);

sheet.getRow(12).getCell(7).setCellValue(4);

//修改模板内容导出新模板

FileOutputStream out = new FileOutputStream(exportFilePath);

wb.write(out);

out.close();

}

/**

* @param @param  file

* @param @return

* @param @throws IOException

* @return List (excel每行拼接成List中的String)

* @throws

* @Title: readExcel

* @Description: TODO(对外提供读取excel 的方法)

*/

public static synchronized void readExcel(String importFilePath,String exportFilePath) throws IOException {

File file=new File(importFilePath);

String fileName = file.getName();

//List list = new ArrayList();

//根据其名称获取后缀

String extension = fileName.lastIndexOf(".") == -1 ? "" : fileName

.substring(fileName.lastIndexOf(".") + 1);

if ("xls".equals(extension)) {

read2003Excel(new FileInputStream(file),exportFilePath);

} else if ("xlsx".equals(extension) || "xlsm".equals(extension)) {

read2007Excel(new FileInputStream(file),exportFilePath);

} else if ("tmp".equals(extension)) {

read2007Excel(new FileInputStream(file),exportFilePath);

} else {

throw new IOException("不支持的文件类型");

}

}

public static void main(String[] args) throws IOException{

//excle 2007

String importFilePath= "/Users/dataDemo.xlsx";

String exportFilePath= "/Users/test2.xlsx";

//createXLSX(importFilePath,exportFilePath);

readExcel(importFilePath,exportFilePath);

}

}

java poi 模板填数据库,java使用POI读取excel模版并向固定表格里填写数据详解相关推荐

  1. java读取sheet2_java读取Excel指定sheet页或全部sheet页数据(含2003和2007版本)

    java读取Excel指定sheet页或全部sheet页数据(含2003和2007版本) 在http://download.csdn.net/detail/u010792467/8072015下载所需 ...

  2. java解析json数据_java解析JSON数据详解

    JSON是目前最流行的轻量级数据交换语言(没有之一).尽管他是javaScript的一个子集.但由于其是独立与语言的文本格式,它几乎可以被所有编程语言所支持. 以下是对java语言中解析json数据的 ...

  3. java POI 读取Excel文件 将图片、表格生成到PPT

    临时有个需求,要求通过读取EXCEL文件,然后通过文件名称去给定的文件夹内查找图片,并将图片写入PPT中,详情以表格的形式写到图片右侧,每张图片一页PPT.效果如图所示: 用到的jar包如下(mave ...

  4. java php同时访问数据库,Java Spring中同时访问多种不同数据库的代码实例分享

    开发企业应用时我们常常遇到要同时访问多种不同数据库的问题,有时是必须把数据归档到某种数据仓库中,有时是要把数据变更推送到第三方数据库中.使用Spring框架时,使用单一数据库是非常容易的,但如果要同时 ...

  5. Java定时备份MySql数据库 Java定时备份数据库 Java备份MySql数据库 java定时备份mysql数据库 java备份mysql数据库

    1.定时任务类 import com.mh.jishi.util.DbUtil; import lombok.extern.slf4j.Slf4j; import org.springframewor ...

  6. java搜索excel表格里的数据_Java读取Excel表格中的数据

    前言 本文主要讲述如何在Java中读取Excel表中的数据并在控制台输出,实现工具为Eclipse 提示:以下是本篇文章正文内容,下面案例可供参考 一.添加jar包文件 描述:在Java中导入导出Ex ...

  7. java编译不报错但运行啥都没_java编译时与运行时概念与实例详解

    java编译时与运行时概念与实例详解 发布于 2020-7-29| 复制链接 本篇文章通过实例对 java程序编译时与运行时进行了详解,需要的朋友可以参考下 Java编译时与运行时很重要的概念,但是一 ...

  8. 使用Java模拟Web端的POST或GET请求,实现自动化操作:加密狗烧制技术详解

    简介 硬件锁(加密狗)加密软件.与金雅特公司合作的方式是:买家公司开发一个授权程序(这里公司的授权程序:Encrypt类的encrypt()方法),进行授权管理用户锁. 注意:LZ只演示模拟Web端的 ...

  9. java前端长连接框架_Java中Spring Boot+Socket实现与html页面的长连接实例详解

    Spring Boot+Socket实现与html页面的长连接,客户端给服务器端发消息,服务器给客户端轮询发送消息,附案例源码 功能介绍 客户端给所有在线用户发送消息客户端给指定在线用户发送消息服务器 ...

最新文章

  1. Scrum敏捷开发沉思录
  2. [DP] LGTB 玩THD (复杂状态DP)
  3. spring事务提交回滚原理mybatis版
  4. 熊猫直播 使用什么sdk_没什么可花的-但是16项基本操作才能让您开始使用熊猫
  5. 20个使用Bootstrap制作的前端框架网站案例
  6. 最近公共祖先_LeetCode 236. 二叉树的最近公共祖先
  7. 开发者实测 M1 芯片报告:除了大型应用程序启动慢点,整体性能优秀!
  8. Qcon大会上电子工业出版社博文视点提供全程技术图书支持
  9. 尚硅谷SpringCloud2020简单学习记录(个人用)33-39集
  10. html 倒计时弹出框,javascript实现倒计时提示框
  11. GB2312区位码、编码表与编码规则
  12. eclipse neno中tomcat配置servers locations地址的文件
  13. flutter 图片编辑矩形 editBox
  14. 红条款信用证Red Clause L/C
  15. 润物无声:java的字符串操作
  16. 命名数据网络NDN中的概念小总结
  17. 北京移动宽带光猫 GM219-S 路由功能分离内置路由器改接外置路由器
  18. IMAX B6充电器使用说明
  19. 洪恩机器人课程提示_洪恩儿童机器人
  20. 19年你在区块链行业收获了什么?

热门文章

  1. Citrix Virtual PC
  2. 一个糟糕的属性分析PJ
  3. TC Games电脑玩手游手机助手对比绝地求生:全军出击和绝地求生:刺激战场到底哪个更好玩
  4. day17_雷神_数据库 小全
  5. 美国非裔艺术家比萨·巴特勒的彩色布片缝制鲜艳的人物肖像
  6. arxiv Access Denied 权限问题禁止下载解决方案
  7. 都柏林圣三一大学计算机课程,都柏林圣三一大学语言课重大更新(附2020年9月截止申请专业)...
  8. 牛人总结: 想入行嵌入式开发?要这样来规划
  9. [原创].关于编写Nios II的延时函数的一点心得
  10. 深度挖掘用户需求?按这五个步骤做!