POI实战-java开发excel详解(第三章 复杂写入)

本文介绍了使用Java POI库进行复杂Excel写入的方法,包括利用模板填充数据并计算学生总成绩、平均分。同时,讲解了如何处理多层公式引用,确保公式在打开Excel后能正确计算。通过示例代码展示了具体实现过程。
摘要由CSDN通过智能技术生成

3.复杂写入

3.1 复杂写入

POI复杂写出主要是同复杂读取一样,在实际开发中,从数据库中读取字符、数字、日期各种类型数据,并通过相应的计算公式写出到Excel中。

这次写出的Excel,不重新创建,而采用Excel模板(图12)形式,将数据从数据库(图13)中读出,并通过公式方式计算每个学生的总成绩、平均分,最后写入模板。


图12

 

图13

代码片段:

public static HSSFWorkbook write(InputStream inputStream) throws IOException, ClassNotFoundException{
		Class clazz = Class.forName(Student.class.getName());
		Field[] fields = clazz.getDeclaredFields();
		
		//初始一个workbook
		HSSFWorkbook workbook = new HSSFWorkbook(inputStream);
		List<Student> list = Conn.getData();
		//创建一个sheet
		HSSFSheet sheet = workbook.getSheetAt(0);
			//创建多行,从列名下一行开始创建
			for(int rowIndex = 1; rowIndex <= list.size(); rowIndex++){
				HSSFRow row = sheet.getRow(rowIndex);
				if(row == null){
					row = sheet.createRow(rowIndex);
				}
				Student student = list.get(rowIndex-1);
				//创建多列(不包括ID列)
				for(int cellnum = 0; cellnum < fields.length-1; cellnum++){
					HSSFCell cell = row.getCell(cellnum);
					if(cell == null){
						cell = row.createCell(cellnum);
					}
					switch (cellnum) {
					case 0:
						cell.setCellValue(new HSSFRichTextString(student.getName()));
						break;
					case 1:
						cell.setCellValue(new HSSFRichTextString(student.getNo()));
						break;
					case 2:
						cell.setCellValue(new HSSFRichTextString(student.getNativePlace()));
						break;
					case 3:
						cell.setCellValue(new HSSFRichTextString(student.getEdu()));
						break;
					case 4:
						cell.setCellValue(student.getYear());
						break;
					case 5:
						cell.setCellValue(student.getMath());
						break;
					case 6:
						cell.setCellValue(student.getChinese());
						break
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第五章:样式 在Java开发中,使用POI库可以方便地操作Excel文件。样式是Excel中重要的一部分,它可以控制单元格的字体、背景颜色、边框等属性。在POI库中,样式的创建和应用都是通过CellStyle对象来实现的。 1. 创建样式 要创建一个新的样式,可以使用工作簿(Workbook)对象的createCellStyle()方法。例如: ``` Workbook workbook = new XSSFWorkbook(); // 创建工作簿 CellStyle style = workbook.createCellStyle(); // 创建样式 ``` 2. 设置字体样式 可以通过CellStyle对象的setFont()方法设置字体样式。首先,创建一个字体对象(Font),然后将其设置给样式对象。例如: ``` Font font = workbook.createFont(); // 创建字体对象 font.setFontName("Arial"); // 设置字体名称 font.setFontHeightInPoints((short) 12); // 设置字体大小 style.setFont(font); // 将字体样式设置给样式对象 ``` 3. 设置背景颜色 可以通过CellStyle对象的setFillForegroundColor()方法设置单元格的背景颜色。例如: ``` style.setFillForegroundColor(IndexedColors.YELLOW.getIndex()); // 设置背景颜色为黄色 ``` 4. 设置边框 可以通过CellStyle对象的setBorderXXX()方法设置单元格的边框样式。例如: ``` style.setBorderTop(BorderStyle.THIN); // 设置顶部边框为细线 style.setBorderRight(BorderStyle.MEDIUM); // 设置右侧边框为中等线 style.setBorderBottom(BorderStyle.DOUBLE); // 设置底部边框为双线 style.setBorderLeft(BorderStyle.THICK); // 设置左侧边框为粗线 ``` 5. 应用样式 将样式应用于单元格时,可以使用Cell对象的setCellStyle()方法。例如: ``` Cell cell = row.createCell(0); // 创建单元格 cell.setCellValue("Hello, World!"); // 设置单元格的值 cell.setCellStyle(style); // 将样式应用于单元格 ``` 这些是Java开发中使用POI库设置Excel样式的基本操作。根据实际需求,还可以设置更多的样式属性,如对齐方式、文本格式等。通过灵活运用样式,可以使生成的Excel文件更加美观和易读。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值