poi的使用模型

package cn.test.demo;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

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

/**
 * POI样式
 * @author Administrator
 *
 */
public class Test2 {

	public static void main(String[] args) throws FileNotFoundException, IOException {
		
		HSSFWorkbook book=new HSSFWorkbook();
		HSSFSheet sheet = book.createSheet("采购单");
		
		/******  画框线  ******/
		int rowCount=12;
		//创建四周带边框的样式  (内容部分)
		HSSFCellStyle style_content = book.createCellStyle();
		style_content.setBorderBottom(HSSFCellStyle.BORDER_THIN);//设置底部边框
		style_content.setBorderTop(HSSFCellStyle.BORDER_THIN);//设置顶部边框
		style_content.setBorderLeft(HSSFCellStyle.BORDER_THIN);//设置左侧边框
		style_content.setBorderRight(HSSFCellStyle.BORDER_THIN);//设置右侧边框
		
		//循环创建内容单元格
		for(int i=2;i<rowCount;i++){
			HSSFRow row = sheet.createRow(i);//循环创建内容行
			for(int j=0;j<4;j++){				
				HSSFCell cell = row.createCell(j);//循环创建单元格
				cell.setCellStyle(style_content);//设置单元格样式
			}			
		}
		
		/***** 合并单元格 *****/
		
		//起始行,截止行,起始列,截止列
		sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 3));
		sheet.addMergedRegion(new CellRangeAddress(2, 2, 1, 3));
		sheet.addMergedRegion(new CellRangeAddress(7, 7, 0, 3));
		
		/***** 设置单元格的值  *****/
		sheet.createRow(0).createCell(0).setCellValue("采购单");
		
		sheet.getRow(2).getCell(0).setCellValue("供应商");
		sheet.getRow(3).getCell(0).setCellValue("下单日期");
		sheet.getRow(4).getCell(0).setCellValue("审核日期");
		sheet.getRow(5).getCell(0).setCellValue("确认日期");
		sheet.getRow(6).getCell(0).setCellValue("结束日期");
		sheet.getRow(3).getCell(2).setCellValue("经办人");
		sheet.getRow(4).getCell(2).setCellValue("经办人");
		sheet.getRow(5).getCell(2).setCellValue("经办人");
		sheet.getRow(6).getCell(2).setCellValue("经办人");
		sheet.getRow(7).getCell(0).setCellValue("订单明细");
		
		sheet.getRow(8).getCell(0).setCellValue("商品名称");
		sheet.getRow(8).getCell(1).setCellValue("价格");
		sheet.getRow(8).getCell(2).setCellValue("数量");
		sheet.getRow(8).getCell(3).setCellValue("金额");
		sheet.getRow(rowCount-1).getCell(0).setCellValue("合计");
		
		/****  设置行高列宽    ******/
		//设置列宽
		for(int i=0;i<4;i++){
			sheet.setColumnWidth(i, 5000);
		}
		//设置行高
		for(int i=2;i<rowCount;i++){
			HSSFRow row = sheet.getRow(i);
			row.setHeight((short) 500);//设置行高
		}
		//设置标题行高度
		sheet.getRow(0).setHeight((short) 1000);
		
		/****** 设置对齐方式    ******/
		style_content.setAlignment(HSSFCellStyle.ALIGN_CENTER);//水平居中
		style_content.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);//垂直居中
		
		//创建字体(内容)
		HSSFFont font = book.createFont();
		font.setFontName("宋体");
		font.setFontHeightInPoints((short) 11);		
		style_content.setFont(font);//设置字体

		//设置单元格为文本格式
          	XSSFCellStyle cell_context = book.createCellStyle();
          	XSSFDataFormat format = book.createDataFormat();
          	cell_context.setDataFormat(format.getFormat("@"));
		
		//设置标题的样式
		HSSFCellStyle style_title = book.createCellStyle();
		style_title.setAlignment(HSSFCellStyle.ALIGN_CENTER);
		style_title.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
		
		HSSFFont font_title = book.createFont();//标题所用字体
		font_title.setFontName("黑体");
		font_title.setFontHeightInPoints((short) 18);
		font_title.setBold(true);//加粗
		style_title.setFont(font_title);//设置标题样式字体
		
		sheet.getRow(0).getCell(0).setCellStyle(style_title);//设置标题样式
		
		
		/*****  设置日期格式  *****/
		
		HSSFDataFormat dataFormat = book.createDataFormat();//创建数据格式
		
		HSSFCellStyle style_date = book.createCellStyle();//日期样式
		style_date.cloneStyleFrom(style_content);//克隆样式
		style_date.setDataFormat(dataFormat.getFormat("yyyy-MM-dd hh:mm"));
		for(int i=3;i<7;i++){
			sheet.getRow(i).getCell(1).setCellStyle(style_date);//设置日期格式
		}
		
		sheet.getRow(3).getCell(1).setCellValue(new Date());
		
		book.write(new FileOutputStream("d:\\test2.xls"));

//如果不传下载路径,可以使用一些代码
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-disposition", "attachment;filename=client_template.xlsx");
OutputStream ouputStream = response.getOutputStream();
book.write(ouputStream);
ouputStream.flush();ouputStream.close();

}}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值