Java导出Excel合并单元格

1、问题背景

     利用POI导出Excel表格,在导出的过程中涉及到双表头,即需要合并单元格


2、实现源码

/**
 * 
 * @Project:Report
 * @Title:MergeCell.java
 * @Package:com.you.excel
 * @Description:
 * @Author:YouHaiDong
 * @Date:2015年11月4日 下午2:36:46
 * @Version:
 */
package com.you.excel;

import java.io.FileOutputStream;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRichTextString;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.Region;

/**
 * <p>合并单元格</p>
 * @ClassName:MergeCell
 * @Description:
 * @Author:YouHaiDong
 * @Date:2015年11月4日 下午2:36:46
 * 
 */
public class MergeCell 
{
	/**
	 * 合并单元格
	 * @Title:MergeCell
	 * @Description:
	 * @param args
	 * @Date:2015年11月4日 下午2:36:46
	 * @return: void 
	 * @throws Exception
	 */
	@SuppressWarnings({ "resource", "deprecation" })
	public static void main(String[] args) throws Exception 
	{
		//创建workbook 
		HSSFWorkbook workbook = new HSSFWorkbook(); 
		//创建sheet页
	    HSSFSheet sheet = workbook.createSheet("学生表"); 
		//创建单元格
		HSSFRow row = sheet.createRow(0); 
		HSSFCell c0 = row.createCell(0); 
		c0.setCellValue(new HSSFRichTextString("学号")); 
		HSSFCell c1 = row.createCell(1); 
		c1.setCellValue(new HSSFRichTextString("姓名")); 
		HSSFCell c2 = row.createCell(2); 
		c2.setCellValue(new HSSFRichTextString("性别")); 
		HSSFCell c3 = row.createCell(3); 
		c3.setCellValue(new HSSFRichTextString("年龄")); 
		HSSFCell c4 = row.createCell(4); 
		c4.setCellValue(new HSSFRichTextString("2015年分数")); 
		HSSFCell c5 = row.createCell(7); 
		c5.setCellValue(new HSSFRichTextString("2014年分数")); 
		HSSFRow row1 = sheet.createRow(1); 
		HSSFCell c6 = row1.createCell(4); 
		c6.setCellValue(new HSSFRichTextString("语文")); 
		HSSFCell c7 = row1.createCell(5); 
		c7.setCellValue(new HSSFRichTextString("数学")); 
		HSSFCell c8 = row1.createCell(6); 
		c8.setCellValue(new HSSFRichTextString("外语"));
		HSSFCell c9 = row1.createCell(7); 
		c9.setCellValue(new HSSFRichTextString("语文")); 
		HSSFCell c10 = row1.createCell(8); 
		c10.setCellValue(new HSSFRichTextString("数学")); 
		HSSFCell c11 = row1.createCell(9); 
		c11.setCellValue(new HSSFRichTextString("外语"));
		
		Region region1 = new Region(0, (short)0, 1, (short)0); 
		Region region2 = new Region(0, (short)1, 1, (short)1); 
		Region region3 = new Region(0, (short)2, 1, (short)2); 
		Region region4 = new Region(0, (short)3, 1, (short)3); 
		Region region5 = new Region(0, (short)4, 0, (short)6); 
		Region region6 = new Region(0, (short)7, 0, (short)9); 
		sheet.addMergedRegion(region1); 
		sheet.addMergedRegion(region2); 
		sheet.addMergedRegion(region3); 
		sheet.addMergedRegion(region4); 
		sheet.addMergedRegion(region5); 
		sheet.addMergedRegion(region6); 
		
		FileOutputStream stream = new FileOutputStream("d:/student.xls"); 
		workbook.write(stream);
	}

}

3、实现结果


原文地址:https://www.cnblogs.com/hzcya1995/p/13314336.html