java poi创建Excel表格写入数据并保存到硬盘然后再读取显示完整示例代码

	public static void main(String[] args) throws IOException {
		// 以HSSFWorkbook(.xls类型)为例定义一个工作薄
		HSSFWorkbook wb = new HSSFWorkbook();
		// 创建sheet
		HSSFSheet xlsSheet = wb.createSheet();
		// 创建行
		for (int i = 0; i < 10; i++) {
			HSSFRow xlsRow = xlsSheet.createRow(i);
			for (int j = 0; j < 10; j++) {
				// 创建行内的列(格子)
				HSSFCell xlsCell = xlsRow.createCell(j);
				// 设置该格子的值
				xlsCell.setCellValue("Test_Col_" + j);
			}
		}
		// 创建输出文件位置
		FileOutputStream out = new FileOutputStream("D:\\用Poi生成的工作薄.xls");
		wb.write(out);
		out.close();

		// 休眠3秒,等待文件写入完毕
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}


	    //HSSFWorkbook wb1 = new HSSFWorkbook(new FileInputStream("D:\\用Poi生成的工作薄.xls"));
		// 读取刚刚写入的EXCEL文件
		FileInputStream inps = new FileInputStream("D:\\用Poi生成的工作薄.xls"); 
		HSSFWorkbook wb1 = new HSSFWorkbook(inps);
		// 获取要解析的表格(第一个表格0)
		HSSFSheet sheet = wb1.getSheetAt(0);
		// 获得总记录数(行数)
		int lastRowNum = sheet.getLastRowNum();
		// 获得总字段数(列数)
		int columnCount = sheet.getRow(0).getPhysicalNumberOfCells();
		// 遍历每一行
		for (int i = 0; i <= lastRowNum; i++) {
			// 获得要解析的行
			HSSFRow row = sheet.getRow(i);
			// 循环获得该行每个单元格中的内容(String)
			String rowString = "[第" + (i + 1) + "行]";
			for (int j = 0; j < columnCount; j++) {
				rowString += "  " + row.getCell(j).getStringCellValue();
			}
			System.out.println(rowString);
		}
		//记得关闭流和工作薄,否则存在内存泄漏
		inps.close();
		wb1.close();
	}

生成的Excel表格效果如下:

 

读取出来的效果如下:

 

posted @ 2022-10-04 00:15  IT情深  阅读(689)  评论(0编辑  收藏  举报