发现poi包中的问题!

zdjmaple 2003-10-29 06:44:56
最近要做报表,需要了解excel结构,对excel数据导入导出,控制excel。于是便用jakarta 的poi。
最近我发现poi包中有这样一个问题。
把poi-2.0-pre2-20030711.jar文件解开,发现在poi\hssf\usermodel\路径下没有contrib包。这个问题的出现是因为我编译一段代码(代码在后面)时,出现的错误信息表示应该有这个包。我想是不是这个poi包不全呢?于是我去http://jakarta.apache.org/builds/jakarta-poi/dev/bin/又下载了很多其他版本的,但是解开来看发现都没有这个包。于是我有去http://jakarta.apache.org/poi/网站,tree结构显示的确有这个包。这搞得我十分恼火。哪位道上朋友能指点迷津呢?

另附上代码:
/* $Id: HelloWorldExample.java,v 1.1.4.1 2001/11/29 18:28:41 remm Exp $
*
*/

import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.usermodel.contrib.HSSFRegionUtil;
import org.apache.poi.hssf.util.*;
import org.apache.poi.hssf.dev.*;
import org.apache.poi.hssf.model.*;
import org.apache.poi.poifs.filesystem.*;
/**
* The simplest possible servlet.
*
* @author James Duncan Davidson
*/

public class HelloWorldExample extends HttpServlet {


public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
try{
processRequest(request, response);
}
catch(Exception ex)
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println(ex.toString());
}

}
public void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException{

response.setContentType("application/vnd.ms-excel");
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("new sheet");
HSSFCellStyle cs = wb.createCellStyle();
HSSFFont f = wb.createFont();
//set font 1 to 12 point type
f.setFontHeightInPoints((short) 18);
//make it blue
f.setColor( (short)0xc );
// make it bold
//arial is the default font
f.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

cs.setFont(f);
cs.setWrapText(true);
cs.setBorderLeft( HSSFCellStyle.BORDER_MEDIUM );
cs.setLeftBorderColor( HSSFColor.BLACK.index );
cs.setRightBorderColor( HSSFColor.BLACK.index );
cs.setTopBorderColor( HSSFColor.BLACK.index );
cs.setBottomBorderColor( HSSFColor.BLACK.index );




// 创建一个新的行,添加几个单元格。
// 行号从0开始计算
HSSFRow row = sheet.createRow((short)0);

// 创建一个单元格,设置单元格的值
HSSFCell cell = row.createCell((short)0);
cell.setCellValue(1);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue("测试数据");

short rowto =3;
short colto =3;
Region r= new Region(0, rowto, 0,colto);
sheet.addMergedRegion(r);


int rowStart = r.getRowFrom();
int rowEnd = r.getRowTo();
int column = r.getColumnFrom();


for (int i = rowStart; i <= rowEnd; i++) {
sheet.getCell(sheet.getRow(i), column).setCellStyle(cs);
//sheet.createCell((short)i);
}




row.createCell((short)1).setCellValue(1.2);
HSSFCell c=row.createCell((short)2);
c.setEncoding(HSSFCell.ENCODING_UTF_16);
c.setCellValue("测试数据");
c.setCellStyle(cs);

/*
try{

HSSFRegionUtil.setLeftBorderColor(HSSFColor.BLACK.index, r, sheet, wb);
}
catch(Exception ex)
{
response.setContentType("text/html");

PrintWriter out = response.getWriter();
out.println(ex.toString());
}
*/




row.createCell((short)3).setCellValue(true);


// 写入输出结果
OutputStream out = response.getOutputStream();
wb.write(out);
out.close();
}
}


出错信息:
package import org.apache.poi.hssf.usermodel.contrib.HSSFRegionUtil doesnot exit

symbol: method getCell (org.apache.poi.hssf.usermodel.contrib.HSSFRow,int)
location: class import org.apache.poi.hssf.usermodel.HSSFsheet
sheet.getCell(sheet.getRow(i),column).setCellStyle(cs);

2 errors

分析:1。没有包org.apache.poi.hssf.usermodel.contrib.HSSFRegionUtil,或者没有找到。
2。第二个错误信息显示HSSFsheet.class也有问题。
3.当我屏蔽掉出错处时就可以。并且配置servlet,在一个普通页面通过post,提交后就可以在web上显示新创建的excel。

哪位热心朋友分析一下。另外欢迎讨论报表制作问题。

我觉得关键问题还是poi包的完整性问题,不知道我这样说对还是不对。
...全文
112 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdjmaple 2003-10-30
  • 打赏
  • 举报
回复
诸位兄台,各种版本都一样啊,打开一看,org\apache\poi\hssf\usermodel路径下就是没有contrib,在jakarta-poi-contrib-1.5.0-FINAL-20020506.jar下虽然有这个包但是也没有
HSSFRegionUtil这个类。
难道是我的设置有问题?
难道不是这样?
test
|_WEB-INF
| |_classes
| | |_HelloWorldExample.java
| |_lib
| |_jakarta-poi-1.5.1-final-20020615.jar
|__**.jsp

考虑到要编译.java 文件,于是在classpath下如下设置:D:\j2sdk1.4.1_01\lib\tools.jar;D:\j2sdk1.4.1_01\lib\dt.jar;D:\tomcat\common\lib\servlet.jar;D:\tomcat\common\lib\jakarta-poi-1.5.1-final-20020615.jar;D:\tomcat\common\lib\jakarta-poi-contrib-1.5.1-final-20020615.jar

编译HelloWorldExample.java时老错误还是不变。

天!怎么会这样??
nenya 2003-10-29
  • 打赏
  • 举报
回复
http://apache.linuxforum.net/dist/jakarta/poi/release/bin/jakarta-poi-1.5.0-FINAL-bin.zip
nenya 2003-10-29
  • 打赏
  • 举报
回复
jakarta-poi-contrib-1.5.0-FINAL-20020506.jar
有吧.你可能下载错了吧
bbshero 2003-10-29
  • 打赏
  • 举报
回复
http://www.chinajavaworld.net/ 首页

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧