Java上传Excel文件并解析入库,数据生成Excel文档(知识点满满)

2023-11-03

原因:我们经常会遇到甲方给数据是excel格式的数据,当然Navicat是支持导入excel的但是遇到客户想要自己上传Excel入库数据就要手动进行写代码了

一:解析Excel入库

/**
*
* @param request
* @param response
* @param 上传excel文件读取excel数据并保存
*
* @return
* @throws IOException
*/

	@RequestMapping(value = "batchUploadExcel")
	public void batchUploadExcel(HttpServletRequest req, @RequestParam("file") MultipartFile multipartFile,Model model) throws Exception {
		
		// String name ="C:\\Users\\lenovo\\Desktop\\WGS\\20211026043847.xlsx";
	       // InputStream multipartFile = new FileInputStream(name);
		
		
	        XSSFWorkbook workbook =	new XSSFWorkbook(multipartFile.getInputStream());
	        //获取文本的sheet
	        XSSFSheet sheet =  workbook.getSheetAt(0);
	        //获取sheet里所有的行数
	        int physicalNumberOfRows =	sheet.getPhysicalNumberOfRows();
	        XSSFRow row;
	        
	        int count = 0;
	        String msg ; 
	        for(int i =1; i< physicalNumberOfRows; i++){
	            row = sheet.getRow(i);
	            //获取到每行的表格call
	          //  int physicalNumberOfCells = row.getPhysicalNumberOfCells();
	          // System.out.println("physicalNumberOfCells:"+physicalNumberOfCells);
				row.getCell(i).setCellType(Cell.CELL_TYPE_STRING); //设置单元格格式
				row.getCell(i).getStringCellValue()  //获取单元格 内容
				
				row.getCell(i).getDateCellValue(); //获取单元格日期类型   (更多去查看api)
			
			}
	    
		
	}

二:java列表数据生成Excel文档

 @RequestMapping(value="test")
    public void text(HttpServletRequest request{
    	
    	
			// 创建excel
			Workbook excel = new XSSFWorkbook();
			// 标题行抽出字段
			String[] title = { "列1", "列2","列3" };
			// 设置sheet名称,并创建新的sheet对象
			String sheetName = "需求列表";
			Sheet stuSheet = excel.createSheet(sheetName);
			// 获取表头行
			Row titleRow = stuSheet.createRow(0);
			// 创建单元格,设置style居中,字体,单元格大小等
			CellStyle style = excel.createCellStyle();
			Cell cell = null;
			// 把已经写好的标题行写入excel文件中
			for (int i = 0; i < title.length; i++) {
				cell = titleRow.createCell(i);
				cell.setCellValue(title[i]);
				cell.setCellStyle(style);
			}

			// 把从数据库中取得的数据一一写入excel文件中
			
			arr 代表  查出的  要写入excel的值
			Row row = null;
			for (int i = 0; i < arr.size(); i++) {
				// 创建list.size()行数据
				row = stuSheet.createRow(i + 1);
				// 把值一一写进单元格里
				// 设置第一列为自动递增的序号
				row.createCell(0).setCellValue(i + 1);
				row.createCell(1).setCellValue(arr.get(i).getname());
				row.createCell(2).setCellValue(arr.get(i).getsex());


			}
			for (int i = 0; i < title.length; i++) {
				stuSheet.autoSizeColumn(i, true);
				stuSheet.setColumnWidth(i, stuSheet.getColumnWidth(i) * 15 / 10);
			}

			// 创建文件目录
			//UUID uufileid = UUID.randomUUID();
			//String fileNamefirst = uufileid.toString();
			String dir = uploadconfig.getServerPath();
			//String folderPath1 = dir + "/" + fileNamefirst;

			// 设置文件名
			SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMddhhmmss");
			String fileName = sdf1.format(new Date()) + ".xlsx";
			// System.out.println(savePath);
			OutputStream fileOut = new FileOutputStream(dir+"/"+fileName);
			excel.write(fileOut);
			fileOut.close();



    }
	
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java上传Excel文件并解析入库,数据生成Excel文档(知识点满满) 的相关文章

随机推荐

  • OLED透明屏:如何选择合适的OLED透明屏供应商?定制、安装、生产

    引言 OLED透明屏作为一种创新的显示技术 正逐渐占领市场并在各个行业中得到广泛应用 在这篇文章中 尼伽将为您提供OLED透明屏的品牌排名 制造过程和安装要点的综合指南 结合相关调查数据和报告 详细介绍该技术的优势和前景 一 OLED透明屏
  • 网络安全开篇

    WAS Web Application Security OWASP Open Web Application Security Project OWASP Top10 这是每年的一份关于web应用的十大威胁安全报告 会在经过安全专家的测验
  • 两个数组的交集、有效的完全平方数、字符串中的第一个唯一字符

    Java学习路线 搬砖工逆袭Java架构师 简介 Java领域优质创作者 CSDN哪吒公众号作者 Java架构师奋斗者 百日刷题计划 第 14 100 天 扫描主页左侧二维码 加入群聊 一起学习 一起进步 欢迎点赞 收藏 留言 位于半山腰的
  • unity全免费下载资源网站

    www unityfly com unity项目源代码插件模型场景免费资源学习分享 unity爱心飞扬下载站 本站建立的初心是 为兄弟姐妹们 学习unity游戏应用开发 免费提供便利和支持 欢迎光临本站
  • Java几种常见的设计模式

    本文来自 旭日Follow 24 的CSDN 博客 全文地址请点击 https blog csdn net xuri24 article details 81106656 utm source copy 一 单例模式 基本概念 保证一个类仅
  • 关于在Idea调试的时如何显示16进制的处理

    关于在Idea调试的时如何显示16进制的处理 右击字节数组 然后选择 View as 再选择 Create 添加对byte 的处理 给个名称 并给个表达式 处理表达式如下 int len this length StringBuilder
  • 悦起无盘客户端怎么连服务器,Staxel怎么联机 直连以及服务器连接教程

    手机游戏自身是适用联网一起玩的 不如说是联网才有趣 假如你不清楚怎样联网得话 看一下大家为大伙儿产生的Staxel怎么联机的实例教程吧 手机游戏自身是适用联网一起玩的 不如说是联网才有趣 假如你不清楚怎样联网得话 看一下大家为大伙儿产生的S
  • CSS核心使用

    CSS核心使用 box sizing box shdow text shadow position writing mode box sizing 定义计算一个元素的总高度和总宽度 属性值 content box 默认值 width 内容宽
  • PHP面向对象

    static静态关键字 声明类特点和办法为静态 不能够经过类的实例直接拜访 类的静态特点不能经过 gt 直接拜访 能够经过 o b j obj obj name来拜访 静态办法能够经过类的实例来拜访
  • RGB与YCBCR转换及代码

    一 目的意义 在某些图像 视频中 经过一些图像处理之后 计算机对于处理后的图像仍然不能直白的检测出所需要的信息 这时候需要对某类色彩进行处理 使得所需要的信息更能直观的在处理后的图像显示出来 二 RGB YCBCR简介及公式转化 RGB R
  • 嘉立创的PCB外形规则解读

    终极标准 某D系列软件外形层及非金属化孔及槽的标准及规范 对于大部分用某D设计的工程师都是乱用KEEPOUT层及机械层 导致PCB工厂CAM工程师傻傻的分不清 造成漏开或多开非金属化孔及非金属化槽的现象时有发生 特此确定以下标准 如果标准相
  • OAM协议详解

    原文地址 https blog csdn net xinyuan510214 article details 79218004
  • CLIP论文解读

    文章目录 问题 方法 自然语言监督 数据集 有效预训练方法 模型选择 实验 Zero Shot Transfer 结论 论文 Learning Transferable Visual Models From Natural Language
  • 遗传算法(一) 遗传算法的基本原理

    遗传算法 一 遗传算法的基本原理 1 概述 遗传算法 Genetic Algorithm GA 起源于对生物系统所进行的计算机模拟研究 它是模仿自然界生物进化机制发展起来的随机全局搜索和优化方法 借鉴了达尔文的进化论和孟德尔的遗传学说 其本
  • 【Docker】如何运行容器?

    文章目录 容器操作 容器相关命令 创建并运行一个容器 docker命令解析 nacos启动成功 访问 进入容器 修改配置文件 总结 接上集 CentOS 7安装Docker https blog csdn net qq 39017153 a
  • unity中通过www加载外部音频

    IEnumerator DownloadVoice string url WWW w new WWW url yield return w 将声音资源赋值为外部加载的声音即可 myclip w audioClip 加载ogg格式的音频 au
  • 视频分类(Classification)和摘要(Captioning)总结

    想象力比知识更重要 爱因斯坦 论文 Deep Learning for Video Classification and Captioning 视频分类是指将大量的视频数据按照一定的标准和规则进行分类和归类 以便于用户快速找到自己感兴趣的视
  • 【MySQL】不就是子查询

    前言 今天我们来学习多表查询的下一个模块 子查询 子查询包括了标量子查询 列子查询 行子查询 表子查询 话不多说我们开始学习 目录 前言 目录 一 子查询 1 子查询的概念 2 子查询语法格式 2 1 根据子查询结果不同可以分为 2 2 根
  • 51单片机开发系列一-51单片机开发环境搭建以及入门汇编代码

    51单片机开发系列一 51单片机开发环境搭建以及入门汇编代码 象棋小子 1048272975 1 51单片机概述 51单片机是对所有兼容Intel 8031指令系统的单片机的统称 目前教科书基本都是以早期的MCS 51为原型 讲解微机的原理
  • Java上传Excel文件并解析入库,数据生成Excel文档(知识点满满)

    原因 我们经常会遇到甲方给数据是excel格式的数据 当然Navicat是支持导入excel的但是遇到客户想要自己上传Excel入库数据就要手动进行写代码了 一 解析Excel入库 param request param response