public class excel {
HttpServletRequest request;
public List addCustomerAssign(File file)// 添加客服中心数据
{
List ls = new ArrayList();
jxl.Workbook rwb = null;
List ii =new ArrayList();
try {
// 构建Workbook对象, 只读Workbook对象
// 直接从本地文件创建Workbook
// 从输入流创建Workbook
InputStream is = new FileInputStream(file);
rwb = Workbook.getWorkbook(is);
// String createTime = DateUtil.getDateTime( "yyyy-MM-dd HH:mm ",new
// Date()).toString();
// Sheet(术语:工作表)就是Excel表格左下角的Sheet1,Sheet2,Sheet3但在程序中
// Sheet的下标是从0开始
// 获取第一张Sheet表
Sheet rs = rwb.getSheet(0);
// 获取Sheet表中所包含的总列数
// int rsColumns = rs.getColumns();
// 获取Sheet表中所包含的总行数
int rsRows = rs.getRows();
// 获取指定单元格的对象引用
// rs.getCell(列,行);
for (int i = 1; i < rsRows; i++) {// 如第一行为属性项则从第二行开始取数据(int i=0 ;i
// <rsRows;i++)
// for(int j=0;j <rsColumns;j++){
// Cell cell = rs.getCell(j,i);
// System.out.print(cell.getContents()+ " ");
// }
// Cell cell = rs.getCell(0,i).getContents()+ " ";
String cell1 = rs.getCell(0, i).getContents().trim();// 序号
String cell7 = rs.getCell(1, i).getContents().trim().toUpperCase();// 公司名称
String cell8 = rs.getCell(2, i).getContents().trim().toUpperCase();// 公司名称

if (cell1 != null && !cell1.equals("") && cell7 != null
&& !cell7.equals("")&&cell8 != null && !cell8.equals(""))// 判断当前行是否为有效行 是插入否找下行
{
User ms = new User();
ms.setTitle(cell1);// 1名称
ms.setAuthor(cell7);// 2法人
ms.setContent(cell8);
ls.add(ms);
}
else{
System.out.println("第"+i+"条数据插入失败");
ii.add(i);
 request.setAttribute("i", ii);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 操作完成时,关闭对象,释放占用的内存空间
rwb.close();
}
return ls;
}
}

解决方案 »

  1.   

    我想实现的是,当数据添加失败后,通过request获取然后在前台显示。但是,上面的代码运行后,总返回空指针异常。麻烦大家看看哪里有问题,如果我的方法错了,麻烦帮帮忙。
      

  2.   

    估计是你request为空
    和你jxl应该没有关系
    添加setter getter
      

  3.   

    回复2楼,我对request进行setter,getter,还是返回空指针
      

  4.   

    大家是否有方法把返回的List,传到servlet类中。然后在doGet()那个方法里进行request操作。
      

  5.   

    我用DEBUG看了,在request.setAttribute("i", ii);这里出错。麻烦大家看到了,帮忙解决下。或者有其他什么方法。说的详细点
      

  6.   

    request实例是没有办法自己创建的,只有从servlet中传过来.
    我们面对的request都是借口,具体实现是友服务器实现的.