实现Excel中的数据导入功能,在网上找了些资料,最终用jxl.jar实现了,除了用了jxl.jar外,部分代码如下:
protected void doProcessPdo(PdoWrapperIf aPdoWrapper) {
String excel_PATH = aPdoWrapper.getString(TAUPINIT_Constants.PATH);
Workbook book = null;
try {
book = Workbook.getWorkbook(new File(excel_PATH));
List<TYPRTEMPTAUPUDT> tTaupList = new ArrayList<TYPRTEMPTAUPUDT>();
Sheet sheet = book.getSheet(0);
for(int rownum = 1; rownum < sheet.getRows(); rownum++){
TYPRTEMPTAUPUDT tTaup = new TYPRTEMPTAUPUDT();
//Details to be import
int idx = 0;
//DDH VARCHAR2(20) NOT NULL,1
if (StringUtils.isNotEmpty(sheet.getCell(idx, rownum).getContents())) {
String pi_DDH = sheet.getCell(idx, rownum).getContents().trim();
tTaup.setDDH(pi_DDH);
}idx++;(中间省略n个字段信息)
//HJXN VARCHAR2(20),
if(StringUtils.isNotEmpty(sheet.getCell(idx,rownum).getContents())){
String pi_HJXN = sheet.getCell(idx, rownum).getContents().trim();
tTaup.setHJXN(pi_HJXN);
}else{
tTaup.setHJXN(null);
}idx++;
tTaupList.add(tTaup);
}
getAdaptedController().pretaupinit(tTaupList);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
JOptionPane.showMessageDialog(null, DataMaintainTxtRes.getResText("taup.import.message"), DataMaintainTxtRes.getResText("taup.import.title"), JOptionPane.ERROR_MESSAGE);
}
}
发现该功能适用于Office2003版本,但是本人写该帖的问题是:
导入时如果新建一个Excel,将数据逐个写入Excel表中导入是没问题的,但是实际数据是从另一个系统(SAP)中导出的,格式完全符合,这时就不能导入,用格式刷将导出Excel的格式与新建的刷一致,有时候导入没问题,有时候导入就会有问题,不知什么地方的细节问题本人考虑不周,请高手就Excel导入功能指点。