java使用poi给excel文件插入数据
- 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文件插入数据相关推荐
- Java 使用 POI 对 Excel文件 进行读写操作
Java 使用 POI 对 Excel文件 进行读写操作 一.背景 目前正在做一个问卷功能模块,收集完问卷信息后,需要将数据库中的数据导出到Excel数据表中进行留存,因此就学习了在Java中如何对E ...
- java使用poi生成Excel文件并合并单元格
java使用poi生成Excel文件并合并单元格 业务需要根据 分管部门 字段进行合并,现在提供一种思路. controller层 @Inject(target = "/inf ...
- java删除数据库表格,《Java:数据库更新excel文件的数据同时删除数据库原来的数据》 excel表格如何删除相同数据库...
Java:数据库更新excel文件的数据同时删除数据库原来的数据 重新写入blob的byte[],就可以覆盖了....... excel表格怎么检查有重复的数据库 方/步骤 打开需要编辑的Excel表 ...
- java使用POI实现excel文件的读取,兼容后缀名xls和xlsx
首先,引入所需的jar包: 如果是maven管理项目的jar包,只需在pom.xml中加上: [html] view plaincopy <!-- https://mvnrepository.c ...
- java的poi导出Excel文件
首先创建 实体类: package cn.temptation.domain;import java.util.Date;import com.fasterxml.jackson.annotation ...
- Java使用POI读取Excel文件
上篇文章记录了简单的POI创建Excel文件,依赖导入可参考上篇 POI读取excel中公式 @Testpublic void testRead() throws Exception {//读取文件的 ...
- Java使用POI操作Excel文件
我们可以使用POI操作Excel文件,本文主要介绍:"导入POI的Maven依赖"."创建Poi对象"."Poi读取Excel工作表数目". ...
- Java操作excel文件插入数据
读取一个表数据根据自己的需求将数据插入到另外一个表中,复制代码下载excel及jar包即可 注意:读取表数据时,表格中的格子没有数据时会读取报错 excel文件及相关jar包: 连接:https:// ...
- java excel 操作 jar包_[JAVA]使用POI向Excel中写入数据以及如何在Intellj IDEA中打jar包...
freddon 发表于2018-05-30 阅读 1383 | 评论 0 给GF写的,现在记录下POI操作Excel读写过程;以及如何在Intellj IDEA中打jar包 代码如下: ``` imp ...
最新文章
- 深度学习的时代将结束:25 年 16625 篇论文佐证
- 通过抓包获取服务器的IP地址
- Spring Cloud 2020.0.5 发布
- java nio 应用场景_BIO、NIO、AIO简述及应用场景
- 一位40岁“老程序员”的经历,给你们说一些我的真实想法!
- php多图片上传程序2.4.3,php多文件上传 多图片上传程序代码
- https://akaedu.github.io/book/ch32s02.html
- awk学习笔记(16) - 字符串函数
- 软件库网站源码+多套模板 附手机版 附教程
- 重庆北大青鸟【学员心声】:有计划的做事情才能事半功倍
- 齐次线性方程组系数矩阵的秩与解集的秩
- UE4 坐标转换 之 CAD 坐标转UE
- 2022 CCF中国软件大会(CCF Chinasoft)“约束求解与定理证明”论坛成功召开
- 数据库的学习与进阶(一)
- 第133天学习打卡(Docker 初识Docker Docker的基本组成 安装docker 阿里云镜像加速 Docker常用命令)
- 20221130今天的世界发生了什么
- 大数据框架图谱(总览)
- 意甲-米兰3-0胜 卡卡两球一助攻达百球里程碑
- python考试怎么过_面试问题整理之python测试
- 计算方法(六):常微分方程初值问题的数值解法