用POI解析Excel,保存时如焦点在下拉框上则报错。

litaofox 2009-03-23 01:04:24
代码如下:
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import java.io.FileInputStream;
import java.util.Calendar;
import java.util.Date;

public class drexcel {
/** Excel文件的存放位置。注意是正斜线 */
public static String fileToBeRead = "D:/报错.xls";

public static void main(String argv[]) {
try {
// 创建对Excel工作簿文件的引用
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(
fileToBeRead));
// 创建对工作表的引用。
HSSFSheet sheet = workbook.getSheet("jbxx");
// 读取单元格
HSSFRow row = sheet.getRow(3);
HSSFCell cell = row.getCell((short) 4);

Date txrq = cell.getDateCellValue();
System.out.println("日期: " + txrq);
} catch (Exception e) {
System.out.println(e);
}
}
}

当读取的Excel保存时,焦点落在下拉框上时,则报错。
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at org.apache.poi.hssf.record.RecordFactory.createRecord(RecordFactory.java:224)
at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:160)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:163)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:210)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:191)
Caused by: java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at org.apache.poi.hssf.record.UnknownRecord.<init>(UnknownRecord.java:62)
at org.apache.poi.hssf.record.SubRecord.createSubRecord(SubRecord.java:57)
at org.apache.poi.hssf.record.ObjRecord.fillFields(ObjRecord.java:99)
at org.apache.poi.hssf.record.Record.fillFields(Record.java:90)
at org.apache.poi.hssf.record.Record.<init>(Record.java:55)
at org.apache.poi.hssf.record.ObjRecord.<init>(ObjRecord.java:61)

Excel是用单元格的数据有效性,通过序列的方式实现单元格下拉列表内容的。
...全文
335 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoyong_struggle 2012-10-25
  • 打赏
  • 举报
回复
这个问题怎么解决啊 !!求高手
hnnxzhoujia 2009-03-27
  • 打赏
  • 举报
回复
越界。 要么你读取的EXCEL没有第4行 或者没有第五列,从0计算的。
ldxfsh 2009-03-23
  • 打赏
  • 举报
回复
Caused by: java.lang.ArrayIndexOutOfBoundsException
下标越界,要么Excel没有3行,要么没有4列,看看你的excel文档吧
yiyi735 2009-03-23
  • 打赏
  • 举报
回复

67,541

社区成员

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

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