HSSF或这是POI到出excel表格

package com.text;

import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
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.HSSFColor;
import org.apache.poi.ss.util.CellRangeAddress;

/**
 * ClassName: MyTest 
 * @Description: example of java exporting excel file;
 * @author mpc
 * @date 2016年7月7日
 */
public class MyTest {

	public static void main(String[] args) {
		HSSFWorkbook book = new HSSFWorkbook();// 这个相当于excel文件
		HSSFSheet sheet = book.createSheet("第一个");// 这个相当于excel中的一个sheet

		HSSFRow row;// excel中的行
		HSSFCell cell;// excel中的单元格

		HSSFCellStyle style = book.createCellStyle();// 单元格的样式
		// 背景色
		style.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index);
		// 前景色
		style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index);

		// 填充模式
		style.setFillPattern(HSSFCellStyle.SQUARES);// 这个是前景色和背景色的填充样式
		style.setAlignment(HSSFCellStyle.ALIGN_CENTER);// 对齐方式(水平)
		style.setVerticalAlignment(HSSFCellStyle.ALIGN_CENTER);// 对齐方式(垂直)

		// 设置上下左右边框样式
		style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
		style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
		style.setBorderRight(HSSFCellStyle.BORDER_THIN);
		style.setBorderTop(HSSFCellStyle.BORDER_THIN);

		// 自动换行
		style.setWrapText(true);

		// 设置字体
		HSSFFont font = book.createFont();
		font.setFontName("黑体");
		font.setFontHeightInPoints((short) 22);
		font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
		String[] headRow1 = { "序号", "学校", "", "班级信息", "", "个人信息", "", "",
				"综合考评" };
		String[] headRow2 = { "", "名称", "位置", "年级", "几班", "姓名", "性别", "联系方式",
				"" };// 在创建row的时候,没一行的row中的每一个单元格都必须有数据。没用的合并就可以了。

		int rowint = 0;
		int titlerow1 = rowint++;// 第0行
		System.out.println(titlerow1);

		row = sheet.createRow((short) titlerow1);// 在sheet中创建第一行
		for (int i = 0; i < headRow1.length; i++) {// 给第一行中的每个cell中写入数据
			cell = row.createCell(i);
			cell.setCellValue(headRow1[i]);
			cell.setCellStyle(style);
		}

		int titlerow2 = rowint++;
		row = sheet.createRow(titlerow2);// 在sheet中创建第二行
		for (int i = 0; i < headRow2.length; i++) {// 给第二行的每个cell写入数据
			cell = row.createCell(i);
			cell.setCellValue(headRow2[i]);
			cell.setCellStyle(style);
		}

		// 合并单元格
		sheet.addMergedRegion(new CellRangeAddress(titlerow1, titlerow1, 1, 2));
		sheet.addMergedRegion(new CellRangeAddress(titlerow1, titlerow1, 3, 4));
		sheet.addMergedRegion(new CellRangeAddress(titlerow1, titlerow1, 5, 7));
		sheet.addMergedRegion(new CellRangeAddress(titlerow1, titlerow2, 8, 8));

		// 设置每列的宽度
		for (int k = 0; k < headRow1.length; k++) {
			sheet.setColumnWidth(k, 4200);
		}

		// 放入信息,一般为list,这里用模拟信息
		String message[] = { "1", "清华", "北京", "计算机", "我爱你我爱你我爱你我爱你我爱你我爱你",
				"snow", "女", "562771681", "有" };
		List<String[]> list = new ArrayList<String[]>();
		list.add(message);
		titlerow2++;
		for (int i = 0; i < list.size(); i++) {// 生成一行数据
			String[] mess = (String[]) list.get(i);
			row = sheet.createRow(titlerow2 + i);
			for (int kk = 0; kk < mess.length; kk++) {
				cell = row.createCell(kk);
				cell.setCellStyle(style);
				cell.setCellValue(mess[kk]);
			}

		}

		FileOutputStream outputStream;

		try {// 输出文件

			outputStream = new FileOutputStream("e://mpc.xls");
			book.write(outputStream);
			outputStream.flush();
			outputStream.close();

			//book.getBytes(),转换为byte[]数组,在网络上传播的时候可用
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			System.exit(0);
		}
	}
}



运行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值