Java 操作excel 插入删除列,插入删除图片
起因:接收到一部分数据存在Excel中,大概有300多个,每一个excel的前两行为空,并且插入了一张图片,第三行可以当做表头。
任务:使用kettle将excel中数据导入到数据库中,但是要删除千两行的空白行和第一行的图片。
使用Java 操作文档。
(后续发现使用python操作更简单)
Java 操作Excel 文档
引用 Free Spire.XLS for Java版本: 3.9.1 包
官方文档
或jar包
我的代码
package excel;import com.spire.xls.*;import java.io.File;
import java.util.ArrayList;
import java.util.List;public class RemoveImage {public static void main(String[] args) {List<File> files = getFiles("E:\\XXX\\");for (File f : files) {System.out.println(f.getPath());//加载文档Workbook wb = new Workbook();wb.loadFromFile(f.getPath());//获取指定工作表Worksheet sheet = wb.getWorksheets().get(0);//获取指定图片,删除sheet.getPictures().get(0).remove();//删除前两行数据sheet.deleteRow(1, 2);//保存文档wb.saveToFile("D:\\XXX\\" + f.getName(), ExcelVersion.Version2016);wb.dispose();}}public static List<File> getFiles(String path) {File root = new File(path);List<File> files = new ArrayList<>();if (!root.isDirectory()) {files.add(root);} else {File[] subFiles = root.listFiles();for (File f : subFiles) {files.addAll(getFiles(f.getAbsolutePath()));}}return files;}
}
添加图片
import com.spire.xls.*;public class AddImage {public static void main(String[] args) {//加载文档Workbook wb = new Workbook();wb.loadFromFile("test.xlsx");//获取工作表Worksheet sheet = wb.getWorksheets().get(0);//添加图片ExcelPicture picture = sheet.getPictures().add(7,2,"tp.png");picture.setHeight(270);//设置图片高度picture.setWidth(550);//设置图片宽度picture.setRotation(20);//设置图片旋转角度picture.setAlternativeText("Picture1");//设置图片可选文本picture.setHyperLink("http://www.baidu.com",true);//添加超链接到图片//保存文档wb.saveToFile("AddImage.xlsx", ExcelVersion.Version2010);wb.dispose();}
}
读取图片
import com.spire.xls.*;import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;public class ExtractImage {public static void main(String[] args) throws IOException {//加载文档Workbook wb = new Workbook();wb.loadFromFile("AddImage.xlsx");//获取第一张工作表Worksheet sheet = wb.getWorksheets().get(0);//获取工作表中第一张图片并保存到指定路径ExcelPicture pic = sheet.getPictures().get(0);BufferedImage loImage = pic.getPicture();ImageIO.write(loImage,"jpg",new File("ExtractedImage.jpg"));}
}
删除图片
import com.spire.xls.*;public class RemoveImage {public static void main(String[] args) {//加载文档Workbook wb = new Workbook();wb.loadFromFile("AddImage.xlsx");//获取指定工作表Worksheet sheet = wb.getWorksheets().get(0);//获取指定图片,删除sheet.getPictures().get(0).remove();//保存文档wb.saveToFile("RemoveImage.xlsx",ExcelVersion.Version2010);wb.dispose();}
}
插入行或列
import com.spire.xls.*;public class InsertRowAndColumn {public static void main(String[] args) {//加载文档Workbook wb = new Workbook();wb.loadFromFile("test.xlsx");//获取工作表Worksheet sheet = wb.getWorksheets().get(0);sheet.insertRow(2);//在第2行插入默认格式的行//sheet.insertRow(2,2);//在第2行插入默认格式的两行//sheet.insertRow(5,1,InsertOptionsType.FormatAsAfter);//在第5行插入和下一行格式相同的两行sheet.insertColumn(3);//在第3列插入默认格式的列//sheet.insertColumn(3,2);//在第3列插入默认格式的两列//sheet.insertColumn(3,1,InsertOptionsType.FormatAsBefore);//在第3列插入和前一列格式相同的一列//保存文档wb.saveToFile("InsertRowAndColumn.xlsx");wb.dispose();}
}
隐藏、显示行或列
import com.spire.xls.*;public class HideAndShowRowOrColumn {public static void main(String[] args) {//加载文档Workbook wb = new Workbook();wb.loadFromFile("test.xlsx");//获取指定工作表Worksheet sheet = wb.getWorksheets().get(0);//隐藏第9行sheet.hideRow(9);//隐藏第3列sheet.hideColumn(3);//sheet.showRow(3);//显示行//sheet.showColumn(3);//显示列//保存文档wb.saveToFile("HideAndShow.xlsx");wb.dispose();}
}
删除行或列
import com.spire.xls.*;public class DeleteRowAndColumn {public static void main(String[] args) {//加载文档Workbook wb = new Workbook();wb.loadFromFile("test.xlsx");//获取工作表Worksheet sheet = wb.getWorksheets().get(0);sheet.deleteRow(1);//删除第1行//sheet.deleteRow(1,2);//删除第1行及下一行在内的两行sheet.deleteColumn(4);//删除第4列//sheet.deleteColumn(4,2);//删除第4列及右侧一列在内的两列//保存文档wb.saveToFile("DeleteRowAndColumn.xlsx");wb.dispose();}
}
Java 操作excel 插入删除列,插入删除图片相关推荐
- java excel 插入新行_POI ,Java 操作 Excel 實現行的插入(insert row)
POI ,Java 操作 Excel 實現行的插入(insert row) 前幾天,正在做一個項目,主要用 POI 來操作 Excel 其中,要使用一個,插入功能.主要是因為從數據庫,返回結果集(數據 ...
- java insert row,POI ,Java 操作 Excel 实现行的插入(insert row)
POI ,Java 操作 Excel 实现行的插入(insert row) 前几天,正在做一个项目,主要用 POI 来操作 Excel 其中,要使用一个,插入功能.主要是因为从数据库,返回结果集(数据 ...
- java操作Excel、PDF文件
java操作Excel.PDF文件 下面这些是在开发中用到的一些东西,有的代码贴的不是完整的,只是贴出了关于操作EXCEL的代码: jxl是一个*国人写的java操作excel的工具, 在开源世界中, ...
- java操作excel表
文章分类:Java编程 http://developers.sun.com.cn/blog/functionalca/entry/java读写excel简介 JAVA EXCEL API简介 Java ...
- java操作excel的工具
jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一点.但jExcelAPI对中文 ...
- java操作Excel有两种方式 方式1:jxl操作Excel jxl的API
java操作Excel有两种方式 方式1:jxl操作Excel 方式2:poi操作Excel 下面介绍jxl API: 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用 ...
- java 操作excel jxl_java 中JXL操作Excel实例详解
JXL操作Excel 前言: jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一 ...
- Java 操作excel表格 - JXL(Java excel api)
Java 操作excel表格 Java 操作 Excel 最常用的就是JXL(Java excel api)和POI,用起来挺简单的,不过相应的其功能也并非很强大,够用就行! 首先,下载jxl.jar ...
- Java操作Excel文件以及在Android中的应用
本文章由临江仙原创,转载请注明出处:http://blog.csdn.net/zhy_cheng/article/details/10286563 Excel作为一种有格式的文件,可以使用Java来对 ...
最新文章
- JS日期时间加减实现
- leetcode算法题--买卖股票的最佳时机含手续费
- ftp ssl java_FTP(四)实现FTP,SSL加密
- 《矩阵与变换》教学中的几个“务必”
- 知识产权(笔记 1-3章)
- 【错误记录】Ubuntu 编译 ffmpeg 报错 ( nasm/yasm not found or too old. Use --disable-x86asm for a crippled bu )
- 非阻塞套接字及select模型 select(0,fread,NULL,NULL,timeOut);
- windows电脑截截屏截图的方法
- Oracle第二财季业绩表现抢眼 | 搜狗推出“唇语识别”技术 | FF宣布完成超10亿美元A轮融资
- Mac系统下载安装sublime3详细过程
- 芯片的SD/MMC控制器以及SD卡介绍
- FireFox下载时文件名乱码问题解决
- 声源定位c语言源代码,stm32声源定位.doc
- uView中picker限制选择时间,让过去的时间不可选
- 根据美光内存颗粒上的编码查询对应型号
- linux下oracle11G DG搭建(三):围绕备库搭建操作
- top命令-linux
- chrome快速切换host的扩展程序
- 奥巴马演讲雷人文言文版
- [学习笔记] python深度学习---第三章 神经网络入门
热门文章
- 卸载WPS后怎么WORD的图标还是WPS
- BZOJ3811: 玛里苟斯
- android activity 实际,Android学习感悟之Activity
- 推荐几款比较好的手机流量监控软件
- blackjack java gui_求助一个java的题,blackjack, class 分为Card 和Deck,求大神帮我做一个程序...
- 12.03-内存管理_Tagged Pointer
- 盲盒商城源码系统附源码
- 小程序springboot食堂预约订餐系统毕业设计-附源码221554
- 如何查看手机绑定过的网站或者APP:注销手机号之前你必须要做的——换绑所有旧手机号绑定过的网站或者APP
- 成都春熙路刀客事件PS照片集