• excel模板文件

  • 代码
package com.example.demo;import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.LinkedHashMap;import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class ExcelDemo {public static void main(String[] args) {File file = new File("C:\\Users\\user.SZCPKG3804\\Desktop\\test.xls");File targetFile = new File("C:\\Users\\user.SZCPKG3804\\Desktop\\targetFile.xls");try (FileInputStream fi = new FileInputStream(file);FileOutputStream fo = new FileOutputStream(targetFile);HSSFWorkbook hw = new HSSFWorkbook(fi);) {ArrayList<String[]> arrayList = new ArrayList<String[]>();//模拟要插入的数据for(int i=0;i<3;i++) {String[] strarr = new String[5];for(int j=0;j<strarr.length;j++) {strarr[j] = i+j+"";}arrayList.add(strarr);}// 在指定地方插入指定行数据insertRows(hw, 2, arrayList);//在指定单元格插入数据LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();map.put("date", "2021-10-15");insertSpecialDate(hw, hw.getSheetAt(0), map);hw.write(fo);} catch (Exception e) {e.printStackTrace();}}/*** 在指定地方插入指定行数据* @param hw  EXCEL文件* @param starRow 插入数据开始行* @param arrayList  插入的数据*/private static void insertRows(HSSFWorkbook hw, int starRow, ArrayList<String[]> arrayList) {HSSFSheet sheet = hw.getSheetAt(0);sheet.shiftRows(starRow + 1, sheet.getLastRowNum(), arrayList.size(), true, false);for (int i = 0; i < arrayList.size(); i++) {HSSFRow sourceRow = null;HSSFRow targetRow = null;HSSFCell sourceCell = null;HSSFCell targetCell = null;sourceRow = sheet.getRow(starRow + i);targetRow = sheet.createRow(starRow + 1 + i);targetRow.setHeight(sourceRow.getHeight());String[] strings = arrayList.get(i);for (int m = 0; m < strings.length; m++) {sourceCell = sourceRow.getCell(m);targetCell = targetRow.createCell(m);targetCell.setCellStyle(sourceCell.getCellStyle());targetCell.setCellValue(strings[m]);}}}/*** 在excel指定地方插入数据* @param workBook* @param sheetAt* @param map*/private static void insertSpecialDate(HSSFWorkbook workBook, HSSFSheet sheetAt, LinkedHashMap<String, String> map) {int firstRowNum = sheetAt.getFirstRowNum();int lastRowNum = sheetAt.getLastRowNum();for(int i=firstRowNum;i<=lastRowNum;i++) {HSSFRow row = sheetAt.getRow(i);if(row == null) return;for (int m = row.getFirstCellNum(); m < row.getLastCellNum(); m++) {HSSFCell cell = row.getCell(m);String scValue = cell.getStringCellValue();if(scValue != null && !"".equals(scValue) && scValue.startsWith("${") && scValue.endsWith("}")) {String name = scValue.substring(2,scValue.length()-1);cell.setCellValue(map.get(name));}}}}
}

java使用poi给excel文件插入数据相关推荐

  1. Java 使用 POI 对 Excel文件 进行读写操作

    Java 使用 POI 对 Excel文件 进行读写操作 一.背景 目前正在做一个问卷功能模块,收集完问卷信息后,需要将数据库中的数据导出到Excel数据表中进行留存,因此就学习了在Java中如何对E ...

  2. java使用poi生成Excel文件并合并单元格

    java使用poi生成Excel文件并合并单元格        业务需要根据 分管部门 字段进行合并,现在提供一种思路. controller层 @Inject(target = "/inf ...

  3. java删除数据库表格,《Java:数据库更新excel文件的数据同时删除数据库原来的数据》 excel表格如何删除相同数据库...

    Java:数据库更新excel文件的数据同时删除数据库原来的数据 重新写入blob的byte[],就可以覆盖了....... excel表格怎么检查有重复的数据库 方/步骤 打开需要编辑的Excel表 ...

  4. java使用POI实现excel文件的读取,兼容后缀名xls和xlsx

    首先,引入所需的jar包: 如果是maven管理项目的jar包,只需在pom.xml中加上: [html] view plaincopy <!-- https://mvnrepository.c ...

  5. java的poi导出Excel文件

    首先创建 实体类: package cn.temptation.domain;import java.util.Date;import com.fasterxml.jackson.annotation ...

  6. Java使用POI读取Excel文件

    上篇文章记录了简单的POI创建Excel文件,依赖导入可参考上篇 POI读取excel中公式 @Testpublic void testRead() throws Exception {//读取文件的 ...

  7. Java使用POI操作Excel文件

    我们可以使用POI操作Excel文件,本文主要介绍:"导入POI的Maven依赖"."创建Poi对象"."Poi读取Excel工作表数目". ...

  8. Java操作excel文件插入数据

    读取一个表数据根据自己的需求将数据插入到另外一个表中,复制代码下载excel及jar包即可 注意:读取表数据时,表格中的格子没有数据时会读取报错 excel文件及相关jar包: 连接:https:// ...

  9. java excel 操作 jar包_[JAVA]使用POI向Excel中写入数据以及如何在Intellj IDEA中打jar包...

    freddon 发表于2018-05-30 阅读 1383 | 评论 0 给GF写的,现在记录下POI操作Excel读写过程;以及如何在Intellj IDEA中打jar包 代码如下: ``` imp ...

最新文章

  1. 深度学习的时代将结束:25 年 16625 篇论文佐证
  2. 通过抓包获取服务器的IP地址
  3. Spring Cloud 2020.0.5 发布
  4. java nio 应用场景_BIO、NIO、AIO简述及应用场景
  5. 一位40岁“老程序员”的经历,给你们说一些我的真实想法!
  6. php多图片上传程序2.4.3,php多文件上传 多图片上传程序代码
  7. https://akaedu.github.io/book/ch32s02.html
  8. awk学习笔记(16) - 字符串函数
  9. 软件库网站源码+多套模板 附手机版 附教程
  10. 重庆北大青鸟【学员心声】:有计划的做事情才能事半功倍
  11. 齐次线性方程组系数矩阵的秩与解集的秩
  12. UE4 坐标转换 之 CAD 坐标转UE
  13. 2022 CCF中国软件大会(CCF Chinasoft)“约束求解与定理证明”论坛成功召开
  14. 数据库的学习与进阶(一)
  15. 第133天学习打卡(Docker 初识Docker Docker的基本组成 安装docker 阿里云镜像加速 Docker常用命令)
  16. 20221130今天的世界发生了什么
  17. 大数据框架图谱(总览)
  18. 意甲-米兰3-0胜 卡卡两球一助攻达百球里程碑
  19. python考试怎么过_面试问题整理之python测试
  20. 计算方法(六):常微分方程初值问题的数值解法

热门文章

  1. MySQL 的分页查询 SQL 语句
  2. 和利时scada系统服务器参数,MACS-SCADA综合监控系统
  3. js元素offset与client
  4. linux 扫描磁盘柜,Linux下做磁盘阵列和各种热备份
  5. Heap的讲解 - 介绍
  6. MAL-PEG-NH2,马来酰亚胺-PEG-胺|mal修饰Fe3O4活化磁珠200-300nm|mal修饰SiO2@Fe3O4磁珠200-300nm齐岳生物供应
  7. 4 运动动力学约束下的路径搜索
  8. SQL语句执行顺序及书写建议
  9. EmguCV学习(一)
  10. MMD初尝试1(骨骼系统)