java使用POI操作Excel报表
HSSFWorkbook API:http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html
office办公软件的使用使得开发企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开。或者是:我们已经习惯用Excel打印。这样子如果用.net开发是没有问题的,但是有j2ee这个比.net更有前途的开放式的开发环境,难道我为了解决打印的要求去另写客户端的控件?或者在服务器端使用本地代码?第一种方案的问题是关键数据的处理有时候不能在客户端做,第2种方案的问题是牺牲了代码的可移植性和稳定性。
Apache的Jakata项目的POI子项目,目标是处理ole2对象。目前比较成熟的是HSSF接口,处理MS Excel(97-2002)对象。他是真正的Excel对象,可以控制一些属性如sheet,cell等等。现在HSSF已经成熟到能够和足够我们使用了
POI可以到www.apache.org下载到。编译好的jar主要有这样4个:poi包,poi Browser包,poi hdf包,poi hssf例程包。实际运行时,需要有poi包就可以了。
hssf的各种对象都有例程的介绍。hssf提供的例程在org.apache.poi.hssf.usermodel.examples包中,共有14个,生成的目标xls都是workbook.xls。
如果你想看更多的例程,可以参考hssf的Junit test cases,在poi的包的源代码中有。hssf都有测试代码。
那么Java是怎么样使用POI包操作excel的?
1。首先下载到http://www.apache.org/下载poi,在工程中引入然后:
在servlet里面的doGet方法写法如下:
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import java.io.*;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置返回数据类型
response.setContentType("application/vnd.ms-excel;charset=GBK");
//设置返回的文件名
response.setHeader("Content-Disposition",
"attachment;Filename=Excel.xls");
//得到输出流
OutputStream outStream = response.getOutputStream();
//新建一个工作薄
HSSFWorkbook wb = new HSSFWorkbook();
//建一个插页
HSSFSheet sheet = wb.createSheet("new sheet");
//插入多行,并加入数据
for(int i=0;i<10;i++){
HSSFRow rowi = sheet.createRo
相关文档:
注:1.方法的参数 length 是生成的随机数的长度。
2. 只想要大写的字母 可以使 int choice =65; 只想要小写的字母,就 int choice =97;
import java.util.Random;
public String getCharAndNumr(int length)
{
String val = " ......
方法一:只加密
import java.security.*;
import java.security.spec.*;
class MD5_test {
public final static String MD5(String s) {
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
&n ......
以下内容摘自java函数的参数传递和String类型 http://www.blogjava.net/thuixy/archive/2009/06/06/280302.html
说完了java的String类型,我们最后看看java函数参数的传递,到底是值传递还是引用传递呢?一般的说法是对于基本类型比如int、char是值传递,对于对象类型是引用传递。这种说法没错,但是请看下面的例子:
Str ......
面是我认为正确的做法(结合自己的经验写的,如果不正确,请大家指正):
我的绘图控件是JPanel,
出现滚动条的前提,必须让绘图控件放在JScrollPane上,
对于JScrollPane的Layout,没有特殊要求,下面这样即可:
view plaincopy to clipboardprint?
jScrollPane1.setViewportView(jPanel1);
......