使用POI实现Excel文件的读取(超详细)
目录
一 导入poi相关的maven坐标
二 实现创建并且写入文件
2.1实现步骤
2.2实现代码
2.3效果展示
编辑
2.4注意
三 实现从Excel文件中读取数据
3.1实现步骤
3.2实现代码
3.3结果展示
一 导入poi相关的maven坐标
org.apache.poi
poi
org.apache.poi
poi-ooxml
二 实现创建并且写入文件
2.1实现步骤
往Excel文件中写入数据大致分为五步:
1.创建excel文件
2.创建excel文件的sheet页
3.在sheet页中创建表格的行和列,即单元格
4.在对应单元格中写入数据
5.指定创建文件的路径
6.关闭资源
2.2实现代码
创建Excel文件并且写入数据的代码:
/**
* 通过POI创建excel文件并且向文件中写入数据
*/
public static void write() throws Exception {
// 1.创建一个新的excel文件
XSSFWorkbook excel = new XSSFWorkbook(); // 通过这个方法是在内存中创建的
// 2.在excel文件中创建一个sheet标签页
XSSFSheet sheet = excel.createSheet("info"); // info是这个sheet的名字,不是excel文件的名字
// 3.在sheet标签页中创建行对象
XSSFRow row = sheet.createRow(0); // 下标从0开始,0代表第一行
// 4.在行上面创建单元格并写入数据
row.createCell(0).setCellValue("序号"); // 第一列
row.createCell(1).setCellValue("姓名"); // 第二列
row.createCell(2).setCellValue("年龄"); // 第三列
// 然后在第二行对应的列下面写入相应的值
XSSFRow row2 = sheet.createRow(1);
row2.createCell(0).setCellValue("1"); // 序号为1
row2.createCell(1).setCellValue("张三"); // 姓名为张三
row2.createCell(2).setCellValue("99"); // 年龄为18
// 在第三行对应的列下面写入对应的值
XSSFRow row3 = sheet.createRow(2);
row3.createCell(0).setCellValue("2");
row3.createCell(1).setCellValue("李四");
row3.createCell(2).setCellValue("23");
// ... 后面按照需要自己继续创建单元格写内容
// 5.最后指定excel文件写入的地址
FileOutputStream fileOutputStream = new FileOutputStream(new File("D:\\feisi\\cangQiong\\info.xlsx"));
excel.write(fileOutputStream);
// 6.关闭资源
fileOutputStream.close();
excel.close();
}
2.3效果展示
文件内容:
2.4注意
这里有一个点特别需要注意,就是这段往单元格中写入数据的代码:
// 然后在第二行对应的列下面写入相应的值
XSSFRow row2 = sheet.createRow(1);
row2.createCell(0).setCellValue("1"); // 序号为1
row2.createCell(1).setCellValue("张三"); // 姓名为张三
row2.createCell(2).setCellValue("99"); // 年龄为18
在上面这段代码中 , 我们经常会因为方便,不先给对象引入变量row2 , 而是直接调用创建列的方法,然后写入数据,这样会导致数据写不进去 , 如下:
// 然后在第二行对应的列下面写入相应的值
// XSSFRow row2 = sheet.createRow(1);
sheet.createRow(1).createCell(0).setCellValue("1"); // 序号为1
sheet.createRow(1).createCell(1).setCellValue("张三"); // 姓名为张三
sheet.createRow(1).createCell(2).setCellValue("99"); // 年龄为18
那么得到的表格就会数据缺失,结果如下:
三 实现从Excel文件中读取数据
3.1实现步骤
读取excel文件大致分为五步:
1.获取指定的excel文件对象
2.获取指定该文件对象的sheet页
3.遍历该sheet页中的行
4.遍历每一行的所有列并且获取该单元格的数据
5.关闭资源
3.2实现代码
读取excel文件方法实现代码如下:
public static void read() throws Exception{
// 1.还是一样得到一个excel文件对象,但是我们这里是读 , 所以要指定文件路径
FileInputStream fileInputStream = new FileInputStream(new File("D:\\feisi\\cangqiong\\info.xlsx"));
XSSFWorkbook excel = new XSSFWorkbook(fileInputStream);
// 2.读取excel文件中的sheet1页(因为这个文件就只创建了一个sheet页)
// XSSFSheet sheet = excel.getSheetAt(0);//这是直接拿第一个sheet页
XSSFSheet sheet = excel.getSheet("info");//这是根据sheet页的名字来拿sheet页
// 3.遍历所有行,但是我不知道有多少行,所以我可以直接获取最后有文字的那一行,这样就知道一个有多少行了
int lastRowNum = sheet.getLastRowNum();//获取有文字的最后一行行号
for (int i = 0 ; i
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




