热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java操作excel文件插入数据

读取一个表数据根据自己的需求将数据插入到另外一个表中,复制代码下载excel及jar包即可注意:读取表数据时,表格中的格子没有数据时会读

读取一个表数据根据自己的需求将数据插入到另外一个表中,下载excel及jar包即可

注意:读取表数据时,表格中的格子没有数据时会读取报错

excel文件及相关jar包:

连接:https://pan.baidu.com/s/1BpLGxBz2dPRvq_eCxFofzA,提取码:aczc

excel表格:(一下插入数据是从表格内随机获取插入数据)

package kf.ats.gvnsvr.client.taizhou.test;import org.apache.commons.io.FileUtils;
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;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;public class TestEditExcel {//第一行每一列的titleprivate static String[] title = new String[] {"部门名称","事项编码","事项名称","创建时间","状态"};//生成文件名private static String newfilepath = "e:/testNew.xls";public static void main(String[] args) throws IOException{//读取excel表数据List listMaps = getExcelOne();//封装需要写入excel表的数据List> BodyMap = excelDataList(listMaps);//写入数据exportXlsgl(BodyMap);}/*** 读取excel表数据* @return,list对象集合*/public static List getExcelOne(){List listMaps = new ArrayList();File file = new File("D:\\2020CodeFile\\yhs.xlsx");/IP地址FileInputStream in;XSSFWorkbook wb;try {in = new FileInputStream(file);wb = new XSSFWorkbook(in);Sheet sheet = wb.getSheetAt(0); //取得“测试.xlsx”中的第一个表单int firstRowNum = sheet.getFirstRowNum(); int lastRowNum = sheet.getLastRowNum(); Row row = null; for (int i = firstRowNum+1; i <= lastRowNum; i++) { try { BumenEnity map = new BumenEnity();row = sheet.getRow(i); //取得第i行 (从第二行开始取,因为第一行是表头)map.setDepartment(row.getCell(1).getStringCellValue());map.setName(row.getCell(2).getStringCellValue());map.setService(row.getCell(3).getStringCellValue());listMaps.add(map);} catch (Exception e) { e.printStackTrace(); } }} catch (Exception e1) {// TODO Auto-generated catch blocke1.printStackTrace();}return listMaps;}public static List> excelDataList(List map){List> BodyMap = new ArrayList>();Random r = new Random(1);for (int i=0;i<5;i++){int ret = r.nextInt(100);Date date = randomDate("2020-09-01","2020-11-20");System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date) + " " + ret + " " + map.get(ret).getDepartment() + " " + map.get(ret).getName() + " " + map.get(ret).getService());int max=17,min=8;long randomNum = System.currentTimeMillis();int ran3 = (int) (randomNum%(max-min)+min);DecimalFormat g1=new DecimalFormat("00");String startZeroStr = g1.format(Integer.valueOf(ran3));Map mapdata = new HashMap();mapdata.put("name1", map.get(ret).getName());mapdata.put("name2", map.get(ret).getDepartment());mapdata.put("name3", map.get(ret).getService());mapdata.put("name4", new SimpleDateFormat("yyyy-MM-dd "+startZeroStr+":mm:ss").format(date));mapdata.put("name5", "SUCCESS");BodyMap.add(mapdata);}return BodyMap;}/*** 生成随机时间* @param beginDate开始时间* @param endDate结束时间* @return*/private static Date randomDate(String beginDate,String endDate){try {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");Date start = format.parse(beginDate);Date end = format.parse(endDate);if(start.getTime() >= end.getTime()){return null;}long date = random(start.getTime(),end.getTime());return new Date(date);} catch (Exception e) {e.printStackTrace();}return null;}/*** 生成随机数* @param begin* @param end* @return*/private static long random(long begin,long end){long rtn = begin + (long)(Math.random() * (end - begin));if(rtn == begin || rtn == end){return random(begin,end);}return rtn;}/*** 创建excel文件并插入数据* @param BodyMap*/public static void exportXlsgl(List> BodyMap){//1.创建Excel工作簿HSSFWorkbook workbook = new HSSFWorkbook();//2.创建一个工作表HSSFSheet sheet = workbook.createSheet("sheet2");//3.创建第一行HSSFRow row = sheet.createRow(0);HSSFCell cell = null;//4.插入第一行数据for (int i = 0; i m : BodyMap){ HSSFRow row2=sheet.createRow(i);HSSFCell cell2=row2.createCell(0);cell2.setCellValue(m.get("name1"));cell2=row2.createCell(1);cell2.setCellValue(m.get("name2"));cell2=row2.createCell(2);cell2.setCellValue(m.get("name3"));cell2=row2.createCell(3);cell2.setCellValue(m.get("name4"));cell2=row2.createCell(4);cell2.setCellValue(m.get("name5"));cell2=row2.createCell(5);i++;}//创建一个文件,将Excel内容存盘File file=new File(newfilepath);try {file.createNewFile();FileOutputStream stream=FileUtils.openOutputStream(file);workbook.write(stream);stream.close();} catch (IOException e) {e.printStackTrace();}}
}

实体类:BumenEnity

插入表数据输出结果:


推荐阅读
  • 本项目在Java Maven框架下,利用POI库实现了Excel数据的高效导入与导出功能。通过优化数据处理流程,提升了数据操作的性能和稳定性。项目已发布至GitHub,当前最新版本为0.0.5。该项目不仅适用于小型应用,也可扩展用于大型企业级系统,提供了灵活的数据管理解决方案。GitHub地址:https://github.com/83945105/holygrail,Maven坐标:`com.github.83945105:holygrail:0.0.5`。 ... [详细]
  • MongoDB Aggregates.group() 方法详解与编程实例 ... [详细]
  • Android目录遍历工具 | AppCrawler自动化测试进阶(第二部分):个性化配置详解
    终于迎来了“足不出户也能为社会贡献力量”的时刻,但有追求的测试工程师绝不会让自己的生活变得乏味。与其在家消磨时光,不如利用这段时间深入研究和提升自己的技术能力,特别是对AppCrawler自动化测试工具的个性化配置进行详细探索。这不仅能够提高测试效率,还能为项目带来更多的价值。 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • 深入解析 Django 中用户模型的自定义方法与技巧 ... [详细]
  • 本文详细探讨了Java集合框架的使用方法及其性能特点。首先,通过关系图展示了集合接口之间的层次结构,如`Collection`接口作为对象集合的基础,其下分为`List`、`Set`和`Queue`等子接口。其中,`List`接口支持按插入顺序保存元素且允许重复,而`Set`接口则确保元素唯一性。此外,文章还深入分析了不同集合类在实际应用中的性能表现,为开发者选择合适的集合类型提供了参考依据。 ... [详细]
  • 本题库精选了Java核心知识点的练习题,旨在帮助学习者巩固和检验对Java理论基础的掌握。其中,选择题部分涵盖了访问控制权限等关键概念,例如,Java语言中仅允许子类或同一包内的类访问的访问权限为protected。此外,题库还包括其他重要知识点,如异常处理、多线程、集合框架等,全面覆盖Java编程的核心内容。 ... [详细]
  • 如何在 Java LinkedHashMap 中高效地提取首个或末尾的键值对? ... [详细]
  • 进程(Process)是指计算机中程序对特定数据集的一次运行活动,是系统资源分配与调度的核心单元,构成了操作系统架构的基础。在早期以进程为中心的计算机体系结构中,进程被视为程序的执行实例,其状态和控制信息通过任务描述符(task_struct)进行管理和维护。本文将深入探讨进程的概念及其关键数据结构task_struct,解析其在操作系统中的作用和实现机制。 ... [详细]
  • 使用 XlsxWriter 模块在 Python 中实现 Excel 单元格内多种格式文本的高效写入
    XlsxWriter 是一个强大的 Python 库,专门用于生成 `.xlsx` 格式的 Excel 文件。该模块不仅支持基本的数据写入,还提供了丰富的格式化选项,能够实现单元格内多种文本样式的高效处理。无论是字体、颜色、对齐方式还是边框,XlsxWriter 都能轻松应对,满足用户在 Excel 视图中的各种需求。 ... [详细]
  • 本课程详细解析了Spring AOP的核心概念及其增强机制,涵盖前置增强、后置增强和环绕增强等类型。通过具体示例,深入探讨了如何在实际开发中有效运用这些增强技术,以提升代码的模块化和可维护性。此外,还介绍了Spring AOP在异常处理和性能监控等场景中的应用,帮助开发者更好地理解和掌握这一强大工具。 ... [详细]
  • 在启用分层编译的情况下,即时编译器(JIT)的触发条件涉及多个因素,包括方法调用频率、代码复杂度和运行时性能数据。本文将详细解析这些条件,并探讨分层编译如何优化JVM的执行效率。 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 本文详细解析了如何使用 jQuery 实现一个在浏览器地址栏运行的射击游戏。通过源代码分析,展示了关键的 JavaScript 技术和实现方法,并提供了在线演示链接供读者参考。此外,还介绍了如何在 Visual Studio Code 中进行开发和调试,为开发者提供了实用的技巧和建议。 ... [详细]
  • 深入解析:RKHunter与AIDE在入侵检测中的应用与优势
    本文深入探讨了RKHunter与AIDE在入侵检测领域的应用及其独特优势。通过对比分析,详细阐述了这两种工具在系统完整性验证、恶意软件检测及日志文件监控等方面的技术特点和实际效果,为安全管理人员提供了有效的防护策略建议。 ... [详细]
author-avatar
mobiledu2502932447
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有