`
haofenglemon
  • 浏览: 240632 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

POI 之一

阅读更多
poi 新手教程
Jakarta_POI 使用Java读写Excel(97-2002)文件,可以满足大部分的需要。
因为刚好有一个项目使用到了这个工具,花了点时间顺便翻译了一下POI本身
带的一个Guide.有一些节减和修改,希望给使用这个项目的人一些入门帮助。
POI 下面有几个自项目:HSSF用来实现Excel 的读写.以下是HSSF的主页
http://jakarta.apache.org/poi/hssf/index.html

下面的介绍是基于以下地址的翻译:
http://jakarta.apache.org/poi/hssf/quick-guide.html

目前的版本为1.51应该是很长时间之内的一个稳定版,但HSSF提供的Sample不是基于
1.51所写,所以使用的时候需要适当的注意.
其实POI下面的几个子项目侧重不同读写 Word 的HDF正在开发当中.
XML下的FOP(http://xml.apache.org/fop/index.html)
可以输出pdf文件,也是比较好的一个工具

目录:
创建一个workbook
创建一个sheet
创建cells
创建日期cells
设定单元格格式

说明:
以下可能需要使用到如下的类
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.hssf.util.HSSFColor;

创建workbook

HSSFWorkbook wb = new HSSFWorkbook();
//使用默认的构造方法创建workbook
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
//指定文件名
wb.write(fileOut);
//输出到文件
fileOut.close();

创建一个sheet

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("new sheet");
//workbook创建sheet
HSSFSheet sheet2 = wb.createSheet("second sheet");
//workbook创建另外的sheet
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();

创建cells
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
//注意以下的代码很多方法的参数是short 而不是int 所以需要做一次类型转换
HSSFRow row = sheet.createRow((short)0);
//sheet 创建一行
HSSFCell cell = row.createCell((short)0);
//行创建一个单元格
cell.setCellValue(1);
//设定单元格的值
//值的类型参数有多中double ,String ,boolean,
row.createCell((short)1).setCellValue(1.2);
row.createCell((short)2).setCellValue("This is a string");
row.createCell((short)3).setCellValue(true);

// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();

创建日期cells
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");

HSSFRow row = sheet.createRow((short)0);

HSSFCell cell = row.createCell((short)0);
//设定值为日期
cell.setCellValue(new Date());

HSSFCellStyle cellStyle = wb.createCellStyle();
//指定日期显示格式
cellStyle.setDataFormat(HSSFDataFormat.getFormat("m/d/yy h:mm"));
cell = row.createCell((short)1);
cell.setCellValue(new Date());
//设定单元格日期显示格式
cell.setCellStyle(cellStyle);

FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();

设定单元格格式
单元格格式的设定有很多形式包括单元格的对齐方式,内容的字体设置,
单元格的背景色等,因为形式比较多,只举一些例子.以下的例子在
POI1.5中可能会有所改变具体查看API.
..........
// Aqua background
HSSFCellStyle style = wb.createCellStyle();
//创建一个样式
style.setFillBackgroundColor(HSSFCellStyle.AQUA);
//设定此样式的的背景颜色填充
style.setFillPattern(HSSFCellStyle.BIG_SPOTS);

//样式的填充类型。
//有多种式样如:
//HSSFCellStyle.BIG_SPOTS
//HSSFCellStyle.FINE_DOTS
//HSSFCellStyle.SPARSE_DOTS等
style.setAlignment(HSSFCellStyle.ALIGN_CENTER );
//居中对齐
style.setFillBackgroundColor(HSSFColor.GREEN.index);
//设定单元个背景颜色
style.setFillForegroundColor(HSSFColor.RED.index);
//设置单元格显示颜色
HSSFCell cell = row.createCell((short) 1);
cell.setCellValue("X");
cell.setCellStyle(style);





使用poi的hssf生成一个excel文件以后
有一个主类Workbook(相当于一个excel文件)的方法
Workbook.write(OutputStream)可以写到response.getOutputStream()里面
如果事先设置response的contentType为excel和下载的附件名称就可下载excel

    HSSFWorkbook book = _proxy.expertExcel(_formBean,_login);

    if(book!=null)
    {
        response.setContentType ( "application/ms-excel" ) ;
        response.setHeader ( "Content-Disposition" ,
                             "attachment;filename="+new String("导出Excel.xls".getBytes(),"iso-8859-1")) ;
        book.write(response.getOutputStream());
    }

其中expertExcel无非是从数据库或者其他地方获取数据创建excel即可.
分享到:
评论

相关推荐

    POI操纵EXCEL文档之导入文档(一)

    POI操纵EXCEL文档之导入文档(一) 课件DEMO,使用的开发工具是idea、数据库Mysql

    poi相关jar包

    自动化测试selenium一套可用的jar包之 poi

    poi最新版本及收集的帮助资料

    poi中文教程.doc第一章 POI简介 实际的开发中,表现层的解决方案虽然有多样,但是IE浏览器已成为最多人使用的浏览器,因为大家都用Windows。在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel...

    poi-ooxml-3.9-sources.jar.zip_excel poi_hugeigz_poi ooxml 3.9.ja

    excel 导入,导出之POI 只是其中一个jar包3.9版本

    NPOI,顾名思义,就是POI的.NET版本。

    NPOI,顾名思义,就是POI的.NET...NPOI是构建在POI 3.x版本之上的,本月发布的NPOI 1.2是对应于POI 3.2 final的,所以它支持Excel文件读写,但由于人手和精力原因,还没有实现读写Word, PowerPoint, Visio的文件格式。

    一个java用POI组件读写Excel的类

    一个java用POI读写Excel的类封装了一个读取Excel数据的方法和一个写入Excel数据的方法,写入的话可从数据库读取或自己写一个List...

    geopandas_之三POI合并区县市配套数据

    POI合并区县市配套数据POI合并区县市配套数据POI合并区县市配套数据POI合并区县市配套数据POI合并区县市配套数据

    POI 3.8解析Excel2003、Excel2007

    POI是Apache开源项目之一,对Office文件的操作拥有强大的功能。附件中为常用的操作之一:Excel解析,支持Excel2003和2007的解析,示例仅供参考。

    Java+SpringBoot+POI进行word2html转换

    关于POI对于wps与office生成的文件的处理方式的不同之处;如何通过代码实现对word文档的编辑操作,例如:为word文档添加分节符的操作;如何对word文档进行目录的提取操作;如何对目录提取后保留起原有格式不变;如何...

    2024 POI爬取工具.zip

    POI数据是我们能够获取到的最有价值的城市数据之一,也是我们最常用的城市数据! POI(一般作为Point of Interest的缩写,也有Point of Information的说法),通常称作兴趣点,泛指互联网电子地图中的点位数据,比如...

    论文研究-基于用户签到数据的应用遗传算法的POI推荐 .pdf

    基于用户签到数据的应用遗传算法的POI推荐,邢东旭,张成文,定位技术的出现,使得POI(Point of Interest,兴趣点)个性化推荐成为推荐领域中的关键研究点之一,而在POI推荐研究的进程中又出现了用�

    poi实例+wyy

    poi实例+决不能错过的资源之一。一定要下载了啊 啊啊啊 啊啊

    POI DOCX 完美文本、表格模板文字替换并实现在指定位置插入图片浮于文字上方

    完美市县了DOCX格式的模板文字替换与插入浮于文字上方的图片。

    Apache之 excel的POI报表导出

    Apache之 excel的POI报表导出 这是最装逼的一个 可以在页面弹出可提示下载的选择框,存储选择路径 与平常的下载一般无二

    POI数据分析的具有不同选择集的选择模型-研究论文

    相比之下,新模型研究的是不同的选择集,主要是因为实践中POI位置的总数通常很大。 不同的选择集产生了最大似然估计(MLE)的昂贵计算。 为了减轻计算成本,我们进一步提出了一种约束最大似然估计(CMLE)方法。 与...

    NPOI扩展_npoi_excel_POI_

    NPOI 是指构建在 POI 3.x 版本之上的一个程序,NPOI 可以在没有安装 Office 的情况下对 Word 或 Excel 文档进行读写操作。NPOI 是一个开源的 C# 读写 Excel、WORD 等微软 OLE2 组件文档的项目。

    jotlmsg:在Apache POI之上的简单API可以写入Outlook .msg文件

    这是一个简单的API,旨在轻松生成Microsoft Outlook邮件文件(.msg)。 该库基于并且是100%Java实现。 安装 只需将jotlmsg.jar及其依赖项添加到您的类路径中。 如果您使用的是maven,则只需添加以下依赖项: ...

    Android 高德地图之poi搜索功能的实现代码

    第一,就是设置背景的drawable为纯白色导致键盘弹出的时候,recyclerview的布局被顶上去导致出现白色布局,有点扎眼;最后改成了设置为和背景色一个颜色就和好了 Window window = getDialog().getWindow(); ...

    java POI解析Excel 之数据转换公用方法(推荐)

    下面小编就为大家带来一篇java POI解析Excel 之数据转换公用方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Global site tag (gtag.js) - Google Analytics