java批量导入导出(poi)
一、批量导入
1、导入时我们接参时使用MultipartFile来接受excel文件,用poi来读取文件内容
InputStream inputStream = MultipartFile.getInputStream();
Workbook wb = WorkbookFactory.create(inputStream);
2、获取某个sheet
Sheet sheet = wb.getSheetAt(0);
3、 获取sheet的行数
int rowlNum = sheet.getLastRowNum()
4、获取sheet的第一行
Row row = sheet.getRow(e);
5、获取某一行的的某一列(即是一个单元格)
Cell cell0 = row.getCell(0);
6、获取某个单元格为字符串
cell0.getRichStringCellValue()
7、 获取某个单元格为数字类型
cell0.getNumericCellValue()
注:在导入中要注意对文件格式的判断,对文件大小的判断,对单元格中文本类型的处理,当然要记得关流
二、批量导出,既然是导出我们用到输出流,在控制层参数中加入HttpServletResponse,利用XLSTransformer对象将内容封装为导出文件,
XLSTransformer transformer = new XLSTransformer();
//将读取的内容放入map
Map<String, Object> beanParams = new HashMap<String, Object>();
beanParams.put("content", content);
//读取模板文件
Resource resource = new ClassPathResource("template/export_item_template.xlsx");
BufferedInputStream is = new BufferedInputStream(resource.getInputStream());
Workbook workbook = transformer.transformXLS(is, beanParams);
//当然要对sheet的单元格合并进行控制
Sheet sheetAt = workbook.getSheetAt(0);
CellRangeAddress cellRangeAddress = new CellRangeAddress(FirstRowNum, LastRowNum, 3, 3);
sheetAt.addMergedRegion(cellRangeAddress);(可以对导出的内容遍历[content]来计算你需要合并的所有单元格)
//当然最重要的一笔就是你的模板脚本要正确(spu的集合中包含了sku集合,每一位sku中又包含了shopSupplyInfos集合,注意循环嵌套后一个属性会打印多次,但是当你对单元格合并进行控制之后此问题可以解决[也正是你所需要的样式])
:包版本级是比较落后的了
<!-- poi-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.11</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.11</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.11</version>
</dependency>
<dependency>
<groupId>net.sf.jxls</groupId>
<artifactId>jxls-core</artifactId>
<version>1.0.6</version>
</dependency>
三、也可以用阿里的导出插件
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.6</version>
</dependency>
java批量导入导出(poi)相关推荐
- java es 数据批量导入_ElasticSearch—Java批量导入导出
网上找了很多,我的es是2.3.5版本,网上的客户端最少都是5.x版本,所以没有能用的.自己整合了一下 2.3.5版本的. pom文件: org.elasticsearch elasticsearch ...
- Java实现文件批量导入导出实例(兼容xls,xlsx)
<link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON"> &l ...
- 使用cardme读写VCard文件,实现批量导入导出电话簿
转载自 使用cardme读写VCard文件,实现批量导入导出电话簿 首先下载jar包cardme. http://sourceforge.net/projects/cardme/?source=nav ...
- java Excel导入导出工具类 及使用demo
java Excel导入导出工具类 及使用demo 前言:相信进来的都是想尽快解决问题的,话不多说,按照以下步骤来,可以操作导出excel到本地,导入同理,自行学习.步骤一:直接复制以下excel工具 ...
- AD域中如何批量导入导出账号
本帖出现于51CTO论坛中,是一位网友自己的实际工作经历.是在AD域中如何批量导入导出账号.工作上有一个需求,需要批量的导入一些账号,并要求有一些属性,比如:部门,职位,分机等! 如果您有兴趣也可以去 ...
- CATIA批量导入导出数据到EXCEL
CATIA批量导入导出数据到EXCEL 序言 一.EXCEL数据点批量导入到CATIA 二.CATIA数据点批量导入到EXCEL 三.VB批量输出点到EXCEL 序言 工作中,由于测量基准和建模基准不 ...
- 批量导入/导出Excel文件(Python+Matlab)
简单整理了下批量导入/导出Excel的Python和Matlab代码. Matlab 连续数字型.xlsx文件(如file_1.xlsx, file_2.xlsx, file_3.xlsx) clc, ...
- android手机导出联系人,OPPO Reno如何批量导入/导出联系人?
准备换新手机,怎么将联系人号码全部存到新机里呢?现在的手机都有导入/导出联系人的功能,很方便哦! OPPO Reno如何批量导入/导出联系人? 1.依次进入手机[设置]-[系统应用]-[电话本]-[导 ...
- win10批量导入导出windows计划任务的批处理脚本
批量导入导出windows计划任务的批处理脚本 2017年11月16日 16:19:31 yyusea 阅读数:2705 先把参考摆上: 参考1: How to: Use schtasks_tool ...
最新文章
- 第十五届全国大学生智能汽车竞赛 车模检查手册
- python空行拼接字符串_python基础---文本和字符串操作
- 非标准化的阀门企业也在用钉钉宜搭实现数字化转型
- Ubuntu 命令大全
- opencv车牌照识别
- 矩阵键盘焊接_如何更换和重新焊接机械键盘开关
- 公务员考试——申论2
- python能制作ppt动画效果吗_那些超酷的视频效果,真的是用PPT动画做的吗?
- 同源策略和跨域解决方案
- 【Hack The Box】windows练习-- Silo
- 先验分布 后验分布 似然估计
- 服务器找不到存储服务器,Alfresco社区版“在此服务器上找不到Alfresco存储库”...
- 整理18、19、20年关于《人工智能》的标准和评估规范
- proguard的使用
- 如何Tomcat部署web应用
- 神经网络照片解读下载,神经网络识别图像原理
- 大牛深入讲解!java语言程序设计第二版答案朱庆生
- 国外网站淘来的invocie java代码
- 隆云通空气温湿、CO2、PM2.5、光照五参数传感器
- 物流配送系统设计java,基于Java的物流配送中心系统仿真模块研究与设计