excel导入问题

sxlcom 2007-06-07 03:07:23
页面调用:
###############
调用为如下代码 :
function doQuery1() {
if(confirm("确定删除该企业信息吗?")){
document.kehuxinxiForm.action = "kehuxinxiupload.do?method=readExcel";
document.kehuxinxiForm.submit();
} }

#
###############






strut_config.xml:
------------------------------------
<form-beans>
<form-bean name="recexcelForm" type="com.dsweb.form.RecExcelType" />
</form-beans>

<action path="/kehuxinxiupload" type="com.dsweb.action.uploadkehuxinxi" name="recexcelForm" parameter="method" scope="request">
</action>


uploadkehuxinxi.java
--------------------
package com.dsweb.action;

import com.dsweb.form.RecExcelType;
import com.dsweb.util.DBUtil;

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.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.text.DecimalFormat;

public class uploadkehuxinxi
{
private String resType;

public uploadkehuxinxi(String resType)
{
this.resType = resType;
}

public void renameFile()
{

}

/**
* *
*
* @return
* @throws Exception
*/
//String filePath
public List readExcel() throws Exception
{ System.out .println("#####################");
List list = new ArrayList();
File file = new File("D:/aaa.xls");
if (!file.exists())
{
return null;
}
FileInputStream is = null;
try
{
is = new FileInputStream(file);
HSSFWorkbook workbook = new HSSFWorkbook(is);
HSSFSheet sheet = workbook.getSheetAt(0);
HSSFCell cell = null;
int rowCount = sheet.getPhysicalNumberOfRows();
for (int i = 1; i < rowCount; i++)
{
RecExcelType ret = new RecExcelType();
HSSFRow aRow = sheet.getRow(i);
//ret.setCode(resType);//资源类型;

cell = aRow.getCell((short) 0);
ret.setCode(caseType(cell)); //管理码

cell = aRow.getCell((short) 1);
ret.setIdentifier(caseType(cell)); //纳税识别码

cell = aRow.getCell((short) 2); //单位名称
ret.setCompany_name(caseType(cell));

cell = aRow.getCell((short) 2); //密码
ret.setPassword(caseType(cell));

list.add(ret);
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if (is != null)
{
is.close();
}
}
return list;
}

public void storeResource(List list,String cp_id,String cp_emp_id) throws Exception
{
if (list == null)
{
return;
}
else
{
Connection conn = DBUtil.getCurrentConnection();
PreparedStatement ps = null;
// ResultSet rs = null;

PreparedStatement psfolder = null;
// ImportUtil util = new ImportUtil();

// long[] primaryKey = util.getResId(list.size());

String sql = "insert into company_extend(code,idendifier," +
" password,company_name,tel1,mobile1,tel2,mobile2,open_sms1,open_sms2," +
" valid_date,create_time,address,status,postcode,last_mod_time,update_status" +

" ) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

// String sqlFolder = " insert into wap_re_folder_res (folder_id,res_id,order_index) " +
// " values(?,?,sq_wap_re_folder_res.nextval)";
boolean isFolder = false;
try
{
ps = conn.prepareStatement(sql);
// psfolder = conn.prepareStatement(sqlFolder);
for (int i = 0; i < list.size(); i++)
{
RecExcelType RecExcelType1 = (RecExcelType) list.get(i);
// ps.setLong(1, primaryKey[i]);
//ps.setInt(2, 1);
//ps.setInt(1, Integer.parseInt(resType));
ps.setString(1, RecExcelType1.getCode());
ps.setString(2, RecExcelType1.getIdentifier());
ps.setString(3, RecExcelType1.getCompany_name());
ps.setString(4, RecExcelType1.getPassword());


//ps.setString(7, "1");
//ps.setString(8, cp_id);
//ps.setString(9, cp_emp_id);
ps.addBatch();

// =============================================================================
// if (RecExcelType1.getCode() != null && RecExcelType1.getCode().trim().length() > 2)
// {
// psfolder.setString(1, recExcelType.getFolderId().trim());
// psfolder.setLong(2, primaryKey[i]);
// psfolder.addBatch();
// isFolder = true;
// }
// =============================================================================

}
ps.executeBatch();
if (isFolder)
{
psfolder.executeBatch();
}
conn.commit();
} catch (Exception e)
{
try
{
conn.rollback();
} catch (SQLException e1)
{
e1.printStackTrace();
}
}
finally
{
if (psfolder != null)
{
try
{
psfolder.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
if (ps != null)
{
try
{
ps.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
}
}
public static String caseType(HSSFCell cell)
{
String str = "";
if (cell == null)
{
return str;
}
//要根据单元格的类型分别做处理,否则格式化过的内容可能会不正确
if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
{
DecimalFormat df = new DecimalFormat("0.00");
String cstr = df.format(cell.getNumericCellValue());
// str = Double.toString();
String str2 = "";
if (cstr.indexOf(".") != -1)
{
str2 = cstr.substring(0, cstr.indexOf("."));
}
double tt = Double.parseDouble(str2);
double d = cell.getNumericCellValue();
if (tt == d)
{
str = str2;
}
else
{
str = cstr;
}
}
else if (cell.getCellType() == HSSFCell.CELL_TYPE_BLANK)
{
str = "";
}
else
{
str = cell.getStringCellValue();
}

return str;
}
}

...全文
291 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxlcom 2007-06-07
  • 打赏
  • 举报
回复
现在己进去了,但到了
cell = aRow.getCell((short) 0);
ret.setCode(caseType(cell)); //管理码
tomcat就出错了

提示:
java.lang.NullPointerException
at com.dsweb.action.uploadkehuxinxi.readExcel(uploadkehuxinxi.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchActio
n.java:274)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:
194)
at org.apache.struts.action.RequestProcessor.processActionPerform(Reques
tProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.ja
va:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:119
6)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
at com.dsweb.filter.EnCodeFilter.doFilter(EnCodeFilter.java:54)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
0)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:683)
at java.lang.Thread.run(Thread.java:534)
sxlcom 2007-06-07
  • 打赏
  • 举报
回复
关键是我根本没有进入我的uploadkehuxinxi.java
为什么
sxlcom 2007-06-07
  • 打赏
  • 举报
回复
关键是下面的都没有出来不可能往下走的
System.out .println("#####################");
wunan320 2007-06-07
  • 打赏
  • 举报
回复
ps = conn.prepareStatement(sql);

for (int i = 0; i < list.size(); i++)
{
RecExcelType RecExcelType1 = (RecExcelType) list.get(i);

ps.setString(1, RecExcelType1.getCode());
ps.setString(2, RecExcelType1.getIdentifier());
ps.setString(3, RecExcelType1.getCompany_name());
ps.setString(4, RecExcelType1.getPassword());

ps.addBatch();
}

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
估计是有的格子里的值是NULL
ps设置sql参数时就出异常了
跟一下这段代码看看
sxlcom 2007-06-07
  • 打赏
  • 举报
回复
怎么人回呀分不够可能再加
sxlcom 2007-06-07
  • 打赏
  • 举报
回复
theforever(碧海情天)
----------------

我己经将参数凭闭了我是用定值来处理的
如:
public List readExcel() throws Exception
{ System.out .println("#####################");
List list = new ArrayList();
File file = new File("D:/aaa.xls");
if (!file.exists())



我应该如何改
wunan320 2007-06-07
  • 打赏
  • 举报
回复
纠正一个小错误
cell = aRow.getCell((short) 2); //密码 ----》改为(short)3
ret.setPassword(caseType(cell));
  • 打赏
  • 举报
回复
java.lang.IllegalArgumentException: Resources cannot be null.

传递的参数中有为NULL的对象. 调用前应检测一下相关参数的值.
sxlcom 2007-06-07
  • 打赏
  • 举报
回复
uploadkehuxinxi.java可能太长了
修改如下:

uploadkehuxinxi.java
--------------------
package com.dsweb.action;

import com.dsweb.form.RecExcelType;
import com.dsweb.util.DBUtil;

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.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.text.DecimalFormat;

public class uploadkehuxinxi
{
private String resType;

public uploadkehuxinxi(String resType)
{
this.resType = resType;
}

public void renameFile()
{

}

//String filePath
public List readExcel() throws Exception
{ System.out .println("#####################");
List list = new ArrayList();
File file = new File("D:/aaa.xls");
if (!file.exists())
{
return null;
}
FileInputStream is = null;
try
{
is = new FileInputStream(file);
HSSFWorkbook workbook = new HSSFWorkbook(is);
HSSFSheet sheet = workbook.getSheetAt(0);
HSSFCell cell = null;
int rowCount = sheet.getPhysicalNumberOfRows();
for (int i = 1; i < rowCount; i++)
{
RecExcelType ret = new RecExcelType();
HSSFRow aRow = sheet.getRow(i);
//ret.setCode(resType);//资源类型;

cell = aRow.getCell((short) 0);
ret.setCode(caseType(cell)); //管理码

cell = aRow.getCell((short) 1);
ret.setIdentifier(caseType(cell)); //纳税识别码

cell = aRow.getCell((short) 2); //单位名称
ret.setCompany_name(caseType(cell));

cell = aRow.getCell((short) 2); //密码
ret.setPassword(caseType(cell));

list.add(ret);
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
if (is != null)
{
is.close();
}
}
return list;
}

public void storeResource(List list,String cp_id,String cp_emp_id) throws Exception
{
if (list == null)
{
return;
}
else
{
Connection conn = DBUtil.getCurrentConnection();
PreparedStatement ps = null;

PreparedStatement psfolder = null;


String sql = "insert into company_extend(code,idendifier," +
" password,company_name,tel1,mobile1,tel2,mobile2,open_sms1,open_sms2," +
" valid_date,create_time,address,status,postcode,last_mod_time,update_status" +

" ) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

boolean isFolder = false;
try
{
ps = conn.prepareStatement(sql);

for (int i = 0; i < list.size(); i++)
{
RecExcelType RecExcelType1 = (RecExcelType) list.get(i);

ps.setString(1, RecExcelType1.getCode());
ps.setString(2, RecExcelType1.getIdentifier());
ps.setString(3, RecExcelType1.getCompany_name());
ps.setString(4, RecExcelType1.getPassword());


ps.addBatch();


}
ps.executeBatch();
if (isFolder)
{
psfolder.executeBatch();
}
conn.commit();
} catch (Exception e)
{
try
{
conn.rollback();
} catch (SQLException e1)
{
e1.printStackTrace();
}
}
finally
{
if (psfolder != null)
{
try
{
psfolder.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
if (ps != null)
{
try
{
ps.close();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
}
}
public static String caseType(HSSFCell cell)
{
String str = "";
if (cell == null)
{
return str;
}
//要根据单元格的类型分别做处理,否则格式化过的内容可能会不正确
if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
{
DecimalFormat df = new DecimalFormat("0.00");
String cstr = df.format(cell.getNumericCellValue());
String str2 = "";
if (cstr.indexOf(".") != -1)
{
str2 = cstr.substring(0, cstr.indexOf("."));
}
double tt = Double.parseDouble(str2);
double d = cell.getNumericCellValue();
if (tt == d)
{
str = str2;
}
else
{
str = cstr;
}
}
else if (cell.getCellType() == HSSFCell.CELL_TYPE_BLANK)
{
str = "";
}
else
{
str = cell.getStringCellValue();
}

return str;
}
}
sxlcom 2007-06-07
  • 打赏
  • 举报
回复
错误提示如下:
description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.IllegalArgumentException: Resources cannot be null.
org.apache.commons.validator.Validator.<init>(Validator.java:188)
org.apache.struts.validator.Resources.initValidator(Resources.java:475)
org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:104)
org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:927)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:204)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.dsweb.filter.EnCodeFilter.doFilter(EnCodeFilter.java:54)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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