我是靠谱客的博主 落寞唇膏,最近开发中收集的这篇文章主要介绍运用java对Excel文件进行解析与创建,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、引言

        在使用java开发应用程序的时候,经常会解析Excel文件,进行数据的写入(导入)与读取(导出)操作,在java中自带的jar包中并没有提供完成此项需求的类库,所以我们需要通过第三方的jar包导入来实现这类需求。

        在我们常见的第三方jar包有Apache Poi , Alibaba EasyExcel,JXL,Apache Poi是第三方的免费跨平台开源用java编写的提供给office Excel数据操作的类库,本篇博客使用Poi对Excel文件进行操作。

        在POI中提供了Excel文件的两种实现类 ,HSSFWrorBook和XSSFWorkBook,前者适用于Excel文件的老版本,后缀名为“.xls”,而后者适用于后缀名为“.xlsx”。

二、Excel文件的结构

WorkBook:Excel文件
Sheet:工作簿对象
Row:数据行
Cell:单元格

三、Excel文件的解析

        创建一个WookBook类的实例化对象,与此同时创建输入流对文件进行文件的读取,按照文件的结构逐层读取。

	//方式1
		try (Workbook workbook = new XSSFWorkbook();
				
				FileInputStream in = new FileInputStream("D:\test\1627356552686.xlsx")) {
		} catch (IOException e) {
			
			e.printStackTrace();
		}
		
		try (//方式2 通过匿名子类
		 Workbook workbook1 = new XSSFWorkbook(new FileInputStream("D:\test\1627356552686.xlsx"))) {
		} catch (IOException e) {
		
			e.printStackTrace();
		}

 1.先获取文件的工作簿(Sheet):


//获取Sheet的两种方式

//根据名称获取
Sheet sheet = workbook.getSheet("yyyy");

//根据下标获取第一个工作簿
Sheet sheet = workbook.getSheetAt(0);

2.获取当前工作簿中的数据行:

我们可以通过foreach循环和for循环遍历,foreach可以遍历所有行,for循环可以遍历部分行


//遍历所有行
for(Row row : sheet) {
    System.out.println(row);
}

//遍历部分行

for (int i = 1; i <= sheet.getLastRowNum(); i++) {
    Row row = sheet.getRow(i);
    System.out.println(row);
}

3.获取当前行的每个单元格

Cell cell = row.getCell(0); //得到第一个单元格

cell.getNumericCellValue() //得到第一个单元格的内容

也可以使用foreach进行单元格的遍历

for(Cell cell : row) {

}

4.设置单元格的格式

使用DataFormat创建单元格的格式,获取格式编码,然后创建CellStyle单元格格式的对象。

         //创建单元格格式
		 DataFormat dataFormat = workbook.createDataFormat();

	     //获取格式编码
		Short formatCode =  dataFormat.getFormat("yyyy-MM-dd HH:mm:ss");
		System.out.println("单元格格式编码:" + formatCode);
			 
		//创建CellStyle单元格格式对象
	     CellStyle cellStyle = workbook.createCellStyle();
		 cellStyle.setDataFormat(formatCode);




         cell3.setCellStyle(cellStyle);  //设置单元格格式
				 
		 cell3.setCellValue(new Date()); //设置日期 = LocalDateTime.now()

四、Excel文件的写入

       1.写入操作时,先创建WorkBook对象,伴随着输出流FileOutputStream的使用,用来决定写入到哪一个文件路径。

        2.通过WorkBook来创建工作簿(Sheet)对象



Sheet sheet1 = workbook.createSheet();

//也可以自定义工作簿名称

Sheet sheet2 = workbook.createSheet("y");

3.创建数据行

Row row = sheet.createRow(0);  //创建当前工作簿的第一行

4.创建单元格并且写入内容

Cell cell = row.createCell(0); //创建第一个单元格


//设置当前单元格的格式
cell.setCellValue(UUID.randomUUID().toString());

5.设置单元格格式

// 创建单元格样式
DataFormat dataFormat = workbook.createDataFormat();
Short formatCode = dataFormat.getFormat("yyyy-MM-dd HH:mm:ss");
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setDataFormat(formatCode);



// 为当前行创建单元格
Cell cell1 = row.createCell(1);
cell1.setCellStyle(cellStyle); // 设置单元格样式
cell1.setCellValue(new Date()); // 保存当前日期时间至本单元格

//设置单元格的水平对齐类型。 此时水平居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);

// 设置单元格的垂直对齐类型。 此时垂直靠底边
cellStyle.setVerticalAlignment(VerticalAlignment.BOTTOM);

6.通过输入流,写入excel文件

使用的是WorkBook对象的write!

  workbook.write(out);

最后

以上就是落寞唇膏为你收集整理的运用java对Excel文件进行解析与创建的全部内容,希望文章能够帮你解决运用java对Excel文件进行解析与创建所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部