使用Apache poi处理Excel

apache-poi下载地址:     http://poi.apache.org/download.html

apache-poi可以用来创建Excel文件,向Excel文件写入内容,读取Excel

其实我们平时怎么创建Excel xls文件的,用Java也是一样的方法

需求:在桌面上创建一个名叫template.xls的Excel文件

步骤如下:

1.创建一个测试类,叫ExcelTest,用来测试Excel的创建和读取,创建测试类testCreateExcelFile.

2.实例化Excel文档对象

3.创建一个Sheet对象

4.创建行对象,并给当前行设置数据

5.声明一个流来把内存中的文档对象写入到Excel文件

	@Test
	void testCreateExcelFile() throws Exception {
		// 创建一个Excel文档对象
		HSSFWorkbook book = new HSSFWorkbook();
		// 创建一个Sheet对象,给当前sheet页设置标题
		HSSFSheet sheet = book.createSheet("信息管理");
		// 创建行对象,行号从0开始
		HSSFRow row1 = sheet.createRow(0);

		// 给第一行写入数据
		// 创建单元格对象,并对每个单元格写入数据,第一个参数表示单元格的索引,第二个参数表示单元格数据的类型
		row1.createCell(0, CellType.STRING).setCellValue("编号");
		row1.createCell(1, CellType.STRING).setCellValue("姓名");
		row1.createCell(2, CellType.STRING).setCellValue("年龄");
		row1.createCell(3, CellType.STRING).setCellValue("薪水");

		// 创建第二行对象
		HSSFRow row2 = sheet.createRow(1);
		// 给第二行的每个单元格写入数据
		row2.createCell(0, CellType.NUMERIC).setCellValue(1);
		row2.createCell(1, CellType.STRING).setCellValue("张三");
		row2.createCell(2, CellType.NUMERIC).setCellValue(24);
		row2.createCell(3, CellType.NUMERIC).setCellValue(1998.1);

		// 创建文件流对象,用于把数据写入到文件
		OutputStream out = new FileOutputStream(new File("C:/Users/Administrator/Desktop/a.xls"));
		// 调用方法
		book.write(out);
		// 最后一定要关闭资源,不然数据写不出去
		out.close();
	}

运行测试防范之后桌面上会生成xls文件

需求,读取桌面上的一个叫a.xls中的所有数据

1.创建一个测试方法,testReadExcelFile,

2.声明一个文档对象,指向一个具体存在的Excel文件

3.根据工作簿标题获取sheet工作簿,

4.遍历每一行

5.遍历每一行的单元格

// 创建文档对象
		// 声明指向一个文件的流对象
		InputStream in = new FileInputStream(new File("C:/Users/Administrator/Desktop/a.xls"));
		HSSFWorkbook book = new HSSFWorkbook(in);
		
		// 获取工作簿对象sheet
		HSSFSheet sheet = book.getSheet("信息管理");
		
		// 获取最后一行的行号,行号从0开始
		int lastRowNum = sheet.getLastRowNum();
		
		// 遍历每一行
		for (int i = 0; i <= lastRowNum; i++) {
			// 获取每一行的对象
			HSSFRow row = sheet.getRow(i);
			// 获取每一行最大的单元格索引
			short lastCellNum = row.getLastCellNum();
			
			for (int j = 0; j < lastCellNum; j++) {
				// 获取单元格对象
				HSSFCell cell = row.getCell(j);
				System.out.println(cell);
			}
		}

控制台的输出结果为:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值