• POI操作Excel(二)


    注意:HSSFWorkBook对应2003版Excel      XSSFWorkBook对应2007以上的Excel

    一.创建时间单元格

               

    public void helloPoi3() throws Exception {
    		Workbook wb = new HSSFWorkbook(); // 定义一个新的工作簿
    		Sheet sheet = wb.createSheet("第一个Sheet页"); // 创建第一个Sheet页
    		Row row = sheet.createRow(0); // 创建一个行
    		Cell cell = row.createCell(0); // 创建一个单元格 第1列
    		cell.setCellValue(new Date()); // 给单元格设置值
    		// 第一种
    		CreationHelper createHelper = wb.getCreationHelper();
    		CellStyle cellStyle = wb.createCellStyle(); // 单元格样式类
    		cellStyle.setDataFormat(createHelper.createDataFormat().getFormat(
    				"yyy-mm-dd hh:mm:ss"));
    		cell = row.createCell(1); // 第二列
    		cell.setCellValue(new Date());
    		cell.setCellStyle(cellStyle);
    		// 第二种
    		cell = row.createCell(2); // 第三列
    		cell.setCellValue(Calendar.getInstance());
    		cell.setCellStyle(cellStyle);
    
    		FileOutputStream fileOut = new FileOutputStream("F:\工作簿.xls");
    		wb.write(fileOut);
    		fileOut.close();
    	}
    

      二.处理不同格式数据

                       

    	@Test
    	public void helloPoi4() throws Exception {
    		Workbook wb = new HSSFWorkbook(); // 定义一个新的工作簿
    		Sheet sheet = wb.createSheet("第一个Sheet页"); // 创建第一个Sheet页
    		Row row = sheet.createRow(0); // 创建一个行
    		Cell cell = row.createCell(0); // 创建一个单元格 第1列
    		cell.setCellValue(new Date()); // 给单元格设置值
    
    		row.createCell(1).setCellValue(1);
    		row.createCell(2).setCellValue("一个字符串");
    		row.createCell(3).setCellValue(true);
    		row.createCell(4).setCellValue(HSSFCell.CELL_TYPE_NUMERIC);
    		row.createCell(5).setCellValue(false);
    
    		FileOutputStream fileOut = new FileOutputStream("F:\工作簿1.xls");
    		wb.write(fileOut);
    		fileOut.close();
    	}
    

    三.遍历excel  的sheet

                     

    	@Test
    	public void helloPoi5() throws Exception {
    		XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream("F:\开发任务.xlsx"));
    		XSSFSheet hssSheet = wb.getSheetAt(0);
    		if (hssSheet == null) {
    			return;
    		}
    		// 遍历行
    		for (int rowNum = 0; rowNum <= hssSheet.getLastRowNum(); rowNum++) {
    			XSSFRow hssRow = hssSheet.getRow(rowNum);
    			if (hssRow == null) {
    				continue;
    			}
    			//遍历列
    			for (int cellNum = 0; cellNum <= hssRow.getLastCellNum(); cellNum++) {
    				XSSFCell hssCell = hssRow.getCell(cellNum);
    				if (hssCell == null) {
    					continue;
    				}
    				System.out.print(" " + getValue(hssCell)); 
    			}
    			    System.out.println();
    		}
    	}
    	private static String getValue(XSSFCell hssfCell){
    		if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){
    			return String.valueOf(hssfCell.getBooleanCellValue());
    		}else if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
    			return String.valueOf(hssfCell.getNumericCellValue());
    		}else{
    			return String.valueOf(hssfCell.getStringCellValue());
    		}
    	}
    

      四.获取excel内的文本信息

            

    @Test
    	  public void helloPoi6()throws Exception{
    		     InputStream is=new FileInputStream("F:\工作簿1.xls");
    			POIFSFileSystem fs=new POIFSFileSystem(is);
    			HSSFWorkbook wb=new HSSFWorkbook(fs);
    			ExcelExtractor excelExtractor=new ExcelExtractor(wb);
    			excelExtractor.setIncludeSheetNames(false);// 我们不需要Sheet页的名字
    			System.out.println(excelExtractor.getText());
    	  }
    

      

  • 相关阅读:
    结合源码浅析Struts2与Spring整合的原理
    LINUX centOS6.x下安装redis
    基于Spring注解@cacheable 集成redis
    windows下搭建LDAP并利用Java实现对LDAP的操作
    Java利用freemaker和(excelXML表格或wordXML表格),导出自己任何想要格式的文档
    创建oracle表的时候一个小细节,会导致你处理java类型转换是时候很麻烦
    socketlog的安装和使用
    Windows 定时任务对数据库进行操作
    将博客搬至CSDN
    git+gitlab实现git版本控制管理本地化+自动化部署
  • 原文地址:https://www.cnblogs.com/goxcheer/p/8671147.html
Copyright © 2020-2023  润新知