package com.vci.client.oq.ui; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.List; import javax.swing.JFileChooser; import javax.swing.filechooser.FileFilter; 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 com.vci.client.LogonApplication; import com.vci.client.common.providers.ServiceProvider; import com.vci.client.oq.QTClient; import com.vci.client.oq.QTDClient; import com.vci.corba.omd.qtm.QTInfo; public class ImpQT { private String fileName; public ImpQT() { } public boolean impExcel(){ JFileChooser jf = new JFileChooser(); jf.setDialogTitle("打开"); jf.removeChoosableFileFilter(jf.getFileFilter()); jf.setFileFilter(new FileFilter() { public String getDescription() { return "xls"; } public boolean accept(File f) { return ((f.isDirectory()) || (f.getName().endsWith(".xls"))); } }); int showOpenDialog = jf.showOpenDialog(LogonApplication.frame); if(showOpenDialog == JFileChooser.APPROVE_OPTION){ File selectedFile = jf.getSelectedFile(); fileName = selectedFile.getAbsolutePath(); if(!fileName.endsWith(".xls")){ fileName = fileName + ".xls"; } FileInputStream fin = null; try { List qts = new ArrayList(); fin = new FileInputStream(fileName); HSSFWorkbook workbook = new HSSFWorkbook(fin); HSSFSheet sheet = workbook.getSheetAt(0); HSSFRow titleRow = sheet.getRow(0); for(int i = 1; i<=sheet.getLastRowNum(); i++){ HSSFRow row = sheet.getRow(i); QTInfo qt = this.parse2QT(row, titleRow); if(qt != null){ qts.add(qt); } } System.out.println(qts.size()); for(QTInfo qt: qts){ boolean isExist = ServiceProvider.getOMDService().getQTDService().isExistsQT(qt.qtName); if(!isExist){ boolean isSuc = ServiceProvider.getOMDService().getQTDService().saveQT(qt); } } return true; } catch (Exception e) { e.printStackTrace(); }finally{ if(fin != null){ try{ fin.close(); }catch(Exception e){ } } } } return false; } private QTInfo parse2QT(HSSFRow row, HSSFRow titleRow) { QTInfo qt = null; File selFile = new File(fileName); String parentPath = selFile.getParent(); for(int i=0; i< titleRow.getLastCellNum(); i++){ String title = titleRow.getCell(i).getStringCellValue(); /*int cellType = titleRow.getCell(i).getCellType(); String value = ""; if(cellType == HSSFCell.CELL_TYPE_NUMERIC){ value = String.valueOf(row.getCell(i).getNumericCellValue()); }else if(cellType == HSSFCell.CELL_TYPE_STRING){ value = row.getCell(i).getStringCellValue(); }*/ String value = row.getCell(i).toString(); if(value == null || value.trim().length() == 0){ continue; } if(qt == null){ qt = new QTInfo(); } if(title.equals("模板名称")){ qt.qtName = value.trim(); }else if(title.equals("业务类型")){ qt.btmName = value.trim(); }else if(title.equals("查询模板级别")){ qt.levelFlag = Short.valueOf(value.trim()); }else if(title.equals("查询模板")){ qt.qtText = readFile(parentPath+value.trim()); }else if(title.equals("查询模板界面")){ qt.qtUIText = readFile(parentPath+value.trim()); }else if(title.equals("创建人")){ qt.creator = value.trim(); }else if(title.equals("创建时间")){ qt.createTime = Long.valueOf(value.trim()); } } return qt; } private String readFile(String filePath){ FileInputStream fin = null; try { byte[] arr = new byte[1024]; int len = 0; StringBuffer sbuf = new StringBuffer(); fin = new FileInputStream(filePath); while((len =fin.read(arr)) >0){ sbuf.append(new String(arr,0, len)); } return sbuf.toString(); } catch (Exception e) { e.printStackTrace(); }finally{ if(fin != null){ try{ fin.close(); }catch(Exception e){} } } return""; } }