public class OperatExcel
{
private File file = new File(ParamenterInit.SRCEXCELPATH);
private File outfile = new File(ParamenterInit.DESTEXCELPATH);
private static String sheetName = ParamenterInit.SHEETNAME;
private static int column =Integer.parseInt(ParamenterInit.SHELLCOLUMN);
private static int sqlcolumn =Integer.parseInt(ParamenterInit.SQLCOLUMN);
public static void main(String args[] ) throws IOException, RowsExceededException, BiffException, WriteException{
OperatExcel op = new OperatExcel();
op.writeExcel();
}
public List readExcel() throws IOException{
InputStream in = new FileInputStream(file);
List list = new ArrayList();
try{
Workbook book = Workbook.getWorkbook(in);
Sheet sheet = book.getSheet(sheetName);
Cell cell [] = sheet.getColumn(column);
for(Cell c : cell){
list.add(c.getContents().trim().startsWith("/")?c.getContents().substring(1).trim():c.getContents().trim());
}
in.close();
//in.close();
}catch(Exception ex){
ex.printStackTrace();
}
return list;
}
public void writeExcel() throws IOException, BiffException, RowsExceededException, WriteException{
SimpleParser parser = new SimpleParser();
Map sqlMap = parser.getSqlMap();
Iterator it = sqlMap.keySet().iterator();
while(it.hasNext()){
System.out.println("key : "+it.next());
System.out.println("value : "+sqlMap.get(it.next()));
}
List shellList = readExcel();
InputStream is = new FileInputStream(file);
Workbook book = Workbook.getWorkbook(is);
FileOutputStream fileout = new FileOutputStream(outfile);
WritableWorkbook bookWrite =Workbook.createWorkbook(fileout,book);
WritableSheet ws = bookWrite.getSheet(sheetName);
ws.setColumnView(sqlcolumn, 300);
int columns = ws.getRows();
for(int i=0;i<columns;i++){
if(sqlMap.get(shellList.get(i))!=null){
Label label = new Label(sqlcolumn,i,(String)sqlMap.get(shellList.get(i)));
ws.addCell(label);
}
}
bookWrite.write();
bookWrite.close();
fileout.close();
is.close();
}
}