poi的excle导出和页面设计以及超链接的问题(按照百度出来单元格显示超链接最多的一篇解决不了我的问题写出来分享)

poi是阿帕奇的一款开源框架,主要是用于excle,wordpdf等文档的导入导出
一搬的问题可以在他的官方文档API上查询到

包名称说明
HSSF提供读写Microsoft Excel XLS格式档案的功能。
XSSF提供读写Microsoft Excel OOXML XLSX格式档案的功能。
HWPF提供读写Microsoft Word DOC格式档案的功能。
HSLF提供读写Microsoft PowerPoint格式档案的功能。
HDGF提供读Microsoft Visio格式档案的功能。
HPBF提供读Microsoft Publisher格式档案的功能。
HSMF提供读Microsoft Outlook格式档案的功能
POI常用类说明
类名                       说明
HSSFWorkbook           Excel的文档对象
HSSFSheet      一个sheet页
HSSFRow               这个sheet页中的一行
HSSFCell   sheet页中的单元格
HSSFFont                Excel字体
 
HSSFDataFormat        格子单元的日期格式
HSSFHeader             Excel文档Sheet的页眉
HSSFFooter             Excel文档Sheet的页脚
HSSFCellStyle          格子单元样式
HSSFDateUtil           日期
HSSFPrintSetup        打印

(1)创建Workbook和Sheet
需求:有五个需要展示的sheet页,按数据是否存在判断sheet页是否显示,并和.doc文案打包下载
我这里主要贴的是我在做sheet页面设计展示的代码和遇到问题的一些代码,比如超链接的显示和字体颜色以及背景颜色的调整
  1.  String filePath="d:\\users\\lizw\\桌面\\POI\\sample.xls";//文件路径
  2. String fileName = "Excle信息报告汇总.xls"; //文件名
File file = new File(urlAdapterVar.getWebPath()+urlAdapterVar.getTplPath()+value2+"/"+fileName);
//在这个路径有一个fileName名称的excle文件
file.createNewFile();//创建一个新的这个名称的excle文件
//创建一个文件
HttpServletResponse response = ServletActionContext.getResponse();
FileOutputStream os = org.apache.commons.io.FileUtils.openOutputStream(file);// 取得输出流
response.reset();// 清空输出流
response.setHeader("Content-disposition", "attachment; filename="
+ new String(fileName.getBytes("GB2312"), "ISO8859-1"));// 设定输出文件头
response.setContentType("application/msexcel");// 定义输出类型
// 设置字体 HSSFFont font = wb.createFont();
// font.setColor(HSSFFont.COLOR_RED); 字体颜泽为红色
//font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示
font.setFontHeightInPoints((short) 10);//字体的大小
//居中加粗大字体(单元格样式)
HSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setFillForegroundColor(IndexedColors.GREEN.getIndex());//绿色
cellStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);//也是对颜色的设置
cellStyle.setFont(font2);
//cellStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT);//居左
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);//居中
  1.  HSSFWorkbook wb= new HSSFWorkbook();//创建Excel文件(Workbook)
  2.  HSSFSheet sheet = wb.createSheet("Demo");//创建工作表(Sheet)命名为Demo
  3. 中间的话也可以对行进行一些操作
HSSFRow rowThree = sheet.createRow(2);
sheet.addMergedRegion(new CellRangeAddress(0,(short)0,0,(short)9));// 四个参数分别是:起始行,结束行,起始列,结束列
第一行调整
sheet.addMergedRegion(new CellRangeAddress(1,(short)1,0,(short)9));// 四个参数分别是:起始行,结束行,起始列,结束列
第二行调整(当然也可以跨行调整)
  1.  HSSFRow rowOne = sheet.createRow(0); //创建一行(对你指定的行要进行操作()中是你要操作的行号)
HSSFCell createCell = rowOne.createCell(0);//表示一行中的第一个单元格
createCell.setCellType(HSSFCell.CELL_TYPE_STRING);//定义单元格输入内容为字符串类型
createCell.setCellStyle(cellStyle3); //给单元格
createCell.setCellValue(new HSSFRichTextString("首页链接可用性监测结果")); // 在单元格中输入一些内容
  1. sheet.autoSizeColumn(0); //自动调整列宽高()中是自动调整列宽高的列
  2. wb.write(out);//把文件写入到流中
  3. out.close();//关闭文件流
  4.  }
  5. }


妈蛋啊,被百度坑了,胡说八道还被转载那么多,还是要按照官方API老做啊
下面是如何做超链接
//超链接的样式
HSSFCellStyle linkStyle = wb.createCellStyle();
HSSFFont cellFont= wb.createFont();
cellFont.setUnderline((byte) 1);
cellFont.setColor(HSSFColor.BLUE.index);
linkStyle.setFont(cellFont);

//下面这两句不能提出来让一个sheet野种所有的都用,只能一个sheet页中一个超链接对应一个这两个对象
CreationHelper createHelper = wb.getCreationHelper();
Hyperlink link = createHelper.createHyperlink(Hyperlink.LINK_URL);
//这两个是创建超链接的对象
link.setAddress(parentUrl);//()中填的是你要指向的链接对象
HSSFCell cellParentUrl = row.createCell(5);//这个是获取我excle文件的第五列的单元格
cellParentUrl.setHyperlink(link);//这个我也不知道
cellParentUrl.setCellStyle(linkStyle);//设置要展示超链接的字体颜色和样式
cellParentUrl.setCellValue(parentUrl);//这个是你要显示的这个单元格的值



poi单元格背景颜色链接
http://blog.csdn.net/drifterj/article/details/46662277


还有一个不错的例子


具体打成zip包的代码可以私信我,懒得贴了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值