<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Terminator Meets Kuch Kuch Hota Hai</title>
	<atom:link href="http://blog.vaishaksuresh.com/2009/04/15/terminator-meets-kuch-kuch-hota-hai/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.vaishaksuresh.com/2009/04/15/terminator-meets-kuch-kuch-hota-hai/</link>
	<description>Been there, seen that</description>
	<lastBuildDate>Mon, 26 Oct 2009 14:03:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: anu</title>
		<link>http://blog.vaishaksuresh.com/2009/04/15/terminator-meets-kuch-kuch-hota-hai/comment-page-1/#comment-113</link>
		<dc:creator>anu</dc:creator>
		<pubDate>Mon, 20 Jul 2009 16:48:59 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vaishaksuresh.com/?p=75#comment-113</guid>
		<description>package xl;&lt;br&gt;&lt;br&gt;import java.io.BufferedInputStream;&lt;br&gt;import java.io.BufferedWriter;&lt;br&gt;import java.io.File;&lt;br&gt;import java.io.FileInputStream;&lt;br&gt;import java.io.FileNotFoundException;&lt;br&gt;import java.io.FileOutputStream;&lt;br&gt;import java.io.FileWriter;&lt;br&gt;import java.io.IOException;&lt;br&gt;import java.io.PrintStream;&lt;br&gt;import java.sql.Connection;&lt;br&gt;import java.sql.DriverManager;&lt;br&gt;import java.sql.PreparedStatement;&lt;br&gt;import java.sql.ResultSet;&lt;br&gt;import java.sql.SQLException;&lt;br&gt;import java.text.Format;&lt;br&gt;import java.text.SimpleDateFormat;&lt;br&gt;import java.util.ArrayList;&lt;br&gt;import java.util.Calendar;&lt;br&gt;import java.util.Date;&lt;br&gt;import java.util.Locale;&lt;br&gt;import java.util.Properties;&lt;br&gt;import java.util.zip.ZipEntry;&lt;br&gt;import java.util.zip.ZipOutputStream;&lt;br&gt;&lt;br&gt;import javax.activation.DataHandler;&lt;br&gt;import javax.activation.FileDataSource;&lt;br&gt;import javax.mail.Message;&lt;br&gt;import javax.mail.MessagingException;&lt;br&gt;import javax.mail.Multipart;&lt;br&gt;import javax.mail.Session;&lt;br&gt;import javax.mail.Transport;&lt;br&gt;import javax.mail.internet.InternetAddress;&lt;br&gt;import javax.mail.internet.MimeBodyPart;&lt;br&gt;import javax.mail.internet.MimeMessage;&lt;br&gt;import javax.mail.internet.MimeMultipart;&lt;br&gt;&lt;br&gt;import jxl.Cell;&lt;br&gt;import jxl.CellType;&lt;br&gt;import jxl.DateCell;&lt;br&gt;import jxl.LabelCell;&lt;br&gt;import jxl.Sheet;&lt;br&gt;import jxl.Workbook;&lt;br&gt;import jxl.WorkbookSettings;&lt;br&gt;import jxl.write.WritableCellFormat;&lt;br&gt;import jxl.read.biff.*;&lt;br&gt;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFCellStyle;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFDataFormat;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFFont;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFRow;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFSheet;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFWorkbook;&lt;br&gt;import org.apache.poi.hssf.util.HSSFColor;&lt;br&gt;&lt;br&gt;public class ReadWriteSheet {&lt;br&gt;	&lt;br&gt;	&lt;br&gt;	&lt;br&gt;	/**&lt;br&gt;	 * creates the log file with the name as the mmmyyyy.log&lt;br&gt;	 * @param message&lt;br&gt;	 */&lt;br&gt;	public void createlogfile(String message){&lt;br&gt;		&lt;br&gt;		 try {&lt;br&gt;				 String name=this.readProperty(&quot;OUTPUT_FOLDER&quot;)+&quot;\&quot;+this.getCurrentDate(&quot;MMMyyyy&quot;, Calendar.getInstance().getTime())+&quot;.log&quot;;&lt;br&gt;				 FileWriter fstream = new FileWriter(name,true);&lt;br&gt;			        BufferedWriter out1 = new BufferedWriter(fstream);&lt;br&gt;			        out1.write(message);&lt;br&gt;			        out1.newLine();&lt;br&gt;			        //Close the output stream&lt;br&gt;			        out1.close();&lt;br&gt;&lt;br&gt;			 }&lt;br&gt;			 catch(Exception e){//Catch exception if any&lt;br&gt;			      System.err.println(&quot;Error: &quot; + e.getMessage());&lt;br&gt;			    }&lt;br&gt;			  }&lt;br&gt;	 &lt;br&gt;&lt;br&gt;		/**&lt;br&gt;		 * &lt;br&gt;		 * @param strPropName&lt;br&gt;		 * @return&lt;br&gt;		 */&lt;br&gt;		public String readProperty(String strPropName)&lt;br&gt;&lt;br&gt;		{&lt;br&gt;&lt;br&gt;			// create an instance of properties class&lt;br&gt;&lt;br&gt;			String strValue = &quot;&quot;;&lt;br&gt;&lt;br&gt;			Properties props = new Properties();&lt;br&gt;&lt;br&gt;			// try retrieve data from file&lt;br&gt;&lt;br&gt;			try {&lt;br&gt;&lt;br&gt;				File f = new File(System.getProperty(&quot;user.dir&quot;) + &quot;\xl\&quot;&lt;br&gt;						+ &quot;message.properties&quot;);&lt;br&gt;				props.load(new FileInputStream(f));&lt;br&gt;&lt;br&gt;				strValue = props.getProperty(strPropName);&lt;br&gt;&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			// catch exception in case properties file does not exist&lt;br&gt;&lt;br&gt;			catch (IOException e)&lt;br&gt;&lt;br&gt;			{&lt;br&gt;&lt;br&gt;				e.printStackTrace();&lt;br&gt;&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			return strValue;&lt;br&gt;&lt;br&gt;		}&lt;br&gt;&lt;br&gt;	/**&lt;br&gt;	 * @param s&lt;br&gt;	 * @param from&lt;br&gt;	 * @return&lt;br&gt;	 */&lt;br&gt;	/*private static int searchRow(Sheet s, int from) {&lt;br&gt;		try {&lt;br&gt;			for (int i = from; i &lt; s.getRows(); i++) {&lt;br&gt;				Cell c = s.getCell(0, i);&lt;br&gt;				if (c.getType() == CellType.LABEL) {&lt;br&gt;					LabelCell l = (LabelCell) c;&lt;br&gt;					if (&quot;Supply Point Id&quot;.equals(l.getString()))&lt;br&gt;						return i - 1;&lt;br&gt;				}&lt;br&gt;			}&lt;br&gt;		} catch (Exception e) {&lt;br&gt;			e.printStackTrace(new PrintStream(System.out));&lt;br&gt;		}&lt;br&gt;		return -1;&lt;br&gt;	}*/&lt;br&gt;		private static int searchRow(Sheet s, int from) {&lt;br&gt;			try {&lt;br&gt;				for (int i = from; i &lt; s.getRows(); i++) {&lt;br&gt;					Cell c = s.getCell(0, i);&lt;br&gt;					if (c.getType() == CellType.LABEL) {&lt;br&gt;						LabelCell l = (LabelCell) c;&lt;br&gt;						if (&quot;Supply Point Id&quot;.equals(l.getString()))&lt;br&gt;							return i - 1;&lt;br&gt;					}&lt;br&gt;					c = s.getCell(1, i);&lt;br&gt;					if (c.getType() == CellType.LABEL) {&lt;br&gt;						LabelCell l = (LabelCell) c;&lt;br&gt;						if (&quot;Supply Point Id&quot;.equals(l.getString()))&lt;br&gt;							return i - 1;&lt;br&gt;					}&lt;br&gt;				}&lt;br&gt;			} catch (Exception e) {&lt;br&gt;				e.printStackTrace(new PrintStream(System.out));&lt;br&gt;			}&lt;br&gt;			return -1;&lt;br&gt;		}&lt;br&gt;&lt;br&gt;&lt;br&gt;	&lt;br&gt;	&lt;br&gt;	/**&lt;br&gt;	 * @param f&lt;br&gt;	 * @param out&lt;br&gt;	 */&lt;br&gt;	public void createZipFile(File f, ZipOutputStream out) {&lt;br&gt;&lt;br&gt;		final int BUFFER = 2048;&lt;br&gt;		 &lt;br&gt;&lt;br&gt;		try {&lt;br&gt;&lt;br&gt;			BufferedInputStream origin = null;&lt;br&gt;			byte data[] = new byte[BUFFER];&lt;br&gt;&lt;br&gt;			File [] files = f.listFiles();&lt;br&gt;			for (int i = 0; i &lt; files.length; i++) {&lt;br&gt;				if(files[i].isDirectory()){&lt;br&gt;					createZipFile(files[i], out);&lt;br&gt;					continue;&lt;br&gt;				}&lt;br&gt;				if(!files[i].toString().contains(&quot;.xls&quot;))&lt;br&gt;					continue;&lt;br&gt;				System.out.println(&quot;Adding: &quot;+files[i]);&lt;br&gt;&lt;br&gt;				FileInputStream fi = new FileInputStream(files[i]);&lt;br&gt;&lt;br&gt;				origin = new BufferedInputStream(fi, BUFFER);&lt;br&gt;				System.out.println(files[i].toString());&lt;br&gt;				&lt;br&gt;				ZipEntry entry = new ZipEntry(files[i].toString());&lt;br&gt;				&lt;br&gt;				out.putNextEntry(entry);&lt;br&gt;&lt;br&gt;				int count;&lt;br&gt;&lt;br&gt;				while ((count = origin.read(data, 0, BUFFER)) != -1) {&lt;br&gt;					System.out.println(data);&lt;br&gt;					System.out.println(count);&lt;br&gt;					out.write(data, 0, count);&lt;br&gt;&lt;br&gt;				}&lt;br&gt;				&lt;br&gt;				origin.close();&lt;br&gt;				System.out.println(files[i]);&lt;br&gt;				this.createlogfile(&quot;zipped the file &quot;+files[i]+ &quot; at&quot; +this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime()));&lt;br&gt;				  &lt;br&gt;&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			&lt;br&gt;&lt;br&gt;		} catch (Exception e) {&lt;br&gt;&lt;br&gt;			e.printStackTrace();&lt;br&gt;&lt;br&gt;		}&lt;br&gt;		&lt;br&gt;&lt;br&gt;	}&lt;br&gt;	&lt;br&gt;	&lt;br&gt;	/**&lt;br&gt;	 * @param pSrcSheet&lt;br&gt;	 * @param pStartRow&lt;br&gt;	 * @param pSiDateTime&lt;br&gt;	 * @param pOutPath&lt;br&gt;	 * @param from &lt;br&gt;	 * @param intIndex&lt;br&gt;	 * @param fileName2&lt;br&gt;	 * @throws Exception&lt;br&gt;	 */&lt;br&gt;	/*private void createNewWorkBook(Sheet pSrcSheet, int pStartRow,&lt;br&gt;			String pSiDateTime, String pOutPath, int intIndex, File fileName2) throws Exception {&lt;br&gt;		&lt;br&gt;		LabelCell l = (LabelCell) pSrcSheet.getCell(0, pStartRow);&lt;br&gt;		String ShipperCode = l.getString();&lt;br&gt;		String filename = getFileName(ShipperCode, pSiDateTime,intIndex,fileName2);&lt;br&gt;		HSSFWorkbook wb          = new HSSFWorkbook();&lt;br&gt;		HSSFSheet sheet = wb.createSheet();&lt;br&gt;		FileOutputStream fileOut = new FileOutputStream(new File(pOutPath,filename));&lt;br&gt;		HSSFCellStyle cs = wb.createCellStyle();&lt;br&gt;		HSSFCellStyle cs1 = wb.createCellStyle();&lt;br&gt;		HSSFCellStyle cs2 = wb.createCellStyle();&lt;br&gt;		HSSFFont f = wb.createFont();&lt;br&gt;		HSSFFont f1 = wb.createFont();&lt;br&gt;		HSSFDataFormat form = wb.createDataFormat();&lt;br&gt;		f1.setColor(HSSFColor.WHITE.index);&lt;br&gt;		f1.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);&lt;br&gt;		f.setColor( HSSFColor.BLACK.index );&lt;br&gt;		f.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);&lt;br&gt;		cs.setFont(f);&lt;br&gt;		cs1.setDataFormat(form.getFormat(this.readProperty(&quot;FORMAT&quot;)));&lt;br&gt;		cs2.setFont(f1);&lt;br&gt;		cs2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);&lt;br&gt;		cs2.setFillForegroundColor(HSSFColor.BLUE_GREY.index);&lt;br&gt;&lt;br&gt;		int dstRow = 0, srcRow = pStartRow;&lt;br&gt;&lt;br&gt;		while (true) {&lt;br&gt;			&lt;br&gt;			Cell c = pSrcSheet.getCell(0, srcRow);&lt;br&gt;			if (c.getType() == CellType.EMPTY) {&lt;br&gt;				break;&lt;br&gt;			}&lt;br&gt;			copyRow2(pSrcSheet, srcRow, sheet, dstRow,cs,cs1);&lt;br&gt;			srcRow++;&lt;br&gt;			dstRow++;&lt;br&gt;		}&lt;br&gt;		HSSFRow row2 = sheet.getRow(1);&lt;br&gt;		int lastcol = row2.getLastCellNum();&lt;br&gt;		for(int i = 0; i&lt;lastcol; i++){&lt;br&gt;			row2.getCell(i).setCellStyle(cs2);&lt;br&gt;			sheet.autoSizeColumn((short) i); &lt;br&gt;&lt;br&gt;		}&lt;br&gt;		wb.write(fileOut);&lt;br&gt;		fileOut.close();&lt;br&gt;		String strOutFolderName = this.readProperty(&quot;OUTPUT_FOLDER&quot;);&lt;br&gt;		this.createlogfile(&quot;created file &quot;+filename+&quot;at &quot;+this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime()));&lt;br&gt;		this.sendEmail(strOutFolderName+&quot;\&quot;+filename,filename,ShipperCode);&lt;br&gt;	}*/&lt;br&gt;	private void createNewWorkBook(Sheet pSrcSheet, int pStartRow,&lt;br&gt;			String pSiDateTime, String pOutPath, int from) throws Exception {&lt;br&gt;		LabelCell l = (LabelCell) pSrcSheet.getCell(0, pStartRow);&lt;br&gt;		String ShipperCode = l.getString();&lt;br&gt;		String filename = getFileName(ShipperCode, pSiDateTime);&lt;br&gt;&lt;br&gt;		// WorkbookSettings ws = new WorkbookSettings();&lt;br&gt;		// ws.setLocale(new Locale(&quot;en&quot;, &quot;EN&quot;));&lt;br&gt;		// WritableWorkbook workbook = Workbook.createWorkbook(new&lt;br&gt;		// File(pOutPath,&lt;br&gt;		// filename), ws);&lt;br&gt;		HSSFWorkbook wb = new HSSFWorkbook();&lt;br&gt;		HSSFSheet sheet = wb.createSheet();&lt;br&gt;		FileOutputStream fileOut = new FileOutputStream(new File(pOutPath,&lt;br&gt;				filename));&lt;br&gt;&lt;br&gt;		// WritableSheet dstSheet = workbook.createSheet(&quot;Sheet1&quot;, 0);&lt;br&gt;		int dstRow = 0, srcRow = pStartRow;&lt;br&gt;&lt;br&gt;		while (true) {&lt;br&gt;			Cell c = pSrcSheet.getCell(0, srcRow);&lt;br&gt;			Cell c2 = pSrcSheet.getCell(1, srcRow);&lt;br&gt;			if (c.getType() == CellType.EMPTY &amp;&amp; c2.getType() == CellType.EMPTY) {&lt;br&gt;				break;&lt;br&gt;			}&lt;br&gt;			// copyRow(pSrcSheet, srcRow, dstSheet, dstRow);&lt;br&gt;			copyRow2(pSrcSheet, srcRow, sheet, dstRow,from);&lt;br&gt;			srcRow++;&lt;br&gt;			dstRow++;&lt;br&gt;		}&lt;br&gt;		wb.write(fileOut);&lt;br&gt;		fileOut.close();&lt;br&gt;&lt;br&gt;		// workbook.write();&lt;br&gt;		// workbook.close();&lt;br&gt;	}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;	/**&lt;br&gt;	 * @param srcSheet&lt;br&gt;	 * @param startRow&lt;br&gt;	 * @param dstSheet&lt;br&gt;	 * @param dstRow&lt;br&gt;	 * @param cs&lt;br&gt;	 * @param cs1&lt;br&gt;	 * @throws Exception&lt;br&gt;	 */&lt;br&gt;	@SuppressWarnings(&quot;deprecation&quot;)&lt;br&gt;	/*private static void copyRow2(Sheet srcSheet, int startRow,&lt;br&gt;			 HSSFSheet dstSheet, int dstRow, HSSFCellStyle cs, HSSFCellStyle cs1) throws Exception {&lt;br&gt;		 HSSFRow row     = dstSheet.createRow((short)dstRow);&lt;br&gt;		 HSSFRow row1 = dstSheet.getRow(0);&lt;br&gt;		&lt;br&gt;&lt;br&gt;		 int count=-1;&lt;br&gt;		 	Cell[] cells = srcSheet.getRow(startRow);&lt;br&gt;			 &lt;br&gt;			for (Cell c : cells) {&lt;br&gt;				if (c.getType() == CellType.LABEL) {&lt;br&gt;					LabelCell l = (LabelCell) c;&lt;br&gt;					@SuppressWarnings(&quot;unused&quot;)&lt;br&gt;					WritableCellFormat f = new WritableCellFormat(c.getCellFormat());&lt;br&gt;					row.createCell(++count).setCellValue(l.getContents());&lt;br&gt;				&lt;br&gt;					&lt;br&gt;					&lt;br&gt;				}&lt;br&gt;				if (c.getType() == CellType.DATE) {&lt;br&gt;					DateCell dt = (DateCell) c;&lt;br&gt;					@SuppressWarnings(&quot;unused&quot;)&lt;br&gt;					WritableCellFormat f = new WritableCellFormat(c.getCellFormat());&lt;br&gt;					row.createCell(++count).setCellValue(dt.getDate());&lt;br&gt;					row.getCell(count).setCellStyle(cs1);&lt;br&gt;&lt;br&gt;				}&lt;br&gt;			}&lt;br&gt;			row1.getCell(0).setCellStyle(cs);&lt;br&gt;&lt;br&gt;	}*/&lt;br&gt;	private static void copyRow2(Sheet srcSheet, int startRow,&lt;br&gt;			HSSFSheet dstSheet, int dstRow,int from) throws Exception {&lt;br&gt;		HSSFRow row = dstSheet.createRow((short) dstRow);&lt;br&gt;		int count = 0;&lt;br&gt;		Cell[] cells = srcSheet.getRow(startRow);&lt;br&gt;		for (Cell c : cells) {&lt;br&gt;			if (c.getType() == CellType.LABEL) {&lt;br&gt;				LabelCell l = (LabelCell) c;&lt;br&gt;&lt;br&gt;				WritableCellFormat f = new WritableCellFormat(c.getCellFormat());&lt;br&gt;				// dstSheet.addCell(new Label(c.getColumn(), dstRow,&lt;br&gt;				// l.getString(), f));&lt;br&gt;				row.createCell(count++).setCellValue(l.getContents());&lt;br&gt;			}&lt;br&gt;			if (c.getType() == CellType.DATE) {&lt;br&gt;				DateCell dt = (DateCell) c;&lt;br&gt;				WritableCellFormat f = new WritableCellFormat(c.getCellFormat());&lt;br&gt;				// dstSheet.addCell(new DateTime(c.getColumn(), dstRow, dt&lt;br&gt;				// .getDate(), f));&lt;br&gt;				row.createCell(count++).setCellValue(dt.getDate());&lt;br&gt;			}&lt;br&gt;		}&lt;br&gt;	}&lt;br&gt;	&lt;br&gt;	&lt;br&gt;	/**&lt;br&gt;	 * @param args&lt;br&gt;	 * @throws IOException&lt;br&gt;	 */&lt;br&gt;	public static void main(String[] args) throws IOException {&lt;br&gt;		ReadWriteSheet rws = new ReadWriteSheet();&lt;br&gt;		try {&lt;br&gt;			rws.createlogfile(&quot;started process at &quot;+ rws.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime()));&lt;br&gt;			String strInpFolderName = rws.readProperty(&quot;INPUT_FOLDER&quot;);&lt;br&gt;			String strOutFolderName = rws.readProperty(&quot;OUTPUT_FOLDER&quot;);&lt;br&gt;			File f = new File(strInpFolderName); // here pass the directory&lt;br&gt;			&lt;br&gt;			File files[] = f.listFiles(); // this will give you a list of excel&lt;br&gt;			// files in the directory&lt;br&gt;			Calendar cal = Calendar.getInstance();&lt;br&gt;			Date d = cal.getTime();&lt;br&gt;			String fileName = rws.getCurrentDate(&quot;ddMMyyyy&quot;, d)+&quot;.zip&quot;;&lt;br&gt;			FileOutputStream dest = null;&lt;br&gt;			try {&lt;br&gt;				dest = new FileOutputStream(strOutFolderName&lt;br&gt;						+ &quot;\&quot; + fileName);&lt;br&gt;			} catch (FileNotFoundException e) {&lt;br&gt;				// TODO Auto-generated catch block&lt;br&gt;				e.printStackTrace();&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			ZipOutputStream out = new ZipOutputStream(dest);&lt;br&gt;			for (int i = 0; i &lt; files.length; i++) {&lt;br&gt;				if(!files[i].toString().contains(&quot;.&quot;))&lt;br&gt;					continue;&lt;br&gt;				rws.processWorkBook(files[i].toString(), &quot;20090601&quot;, strOutFolderName);&lt;br&gt;			}&lt;br&gt;			rws.createZipFile(f, out);&lt;br&gt;			out.close();&lt;br&gt;			rws.deleteExcelFiles(f);&lt;br&gt;			&lt;br&gt;&lt;br&gt;&lt;br&gt;		} catch (RuntimeException ex) {&lt;br&gt;			ex.printStackTrace(new PrintStream(System.out));&lt;br&gt;		}&lt;br&gt;	}&lt;br&gt;	&lt;br&gt;	&lt;br&gt;	/**&lt;br&gt;	 * @param f&lt;br&gt;	 */&lt;br&gt;	private void deleteExcelFiles(File f) {&lt;br&gt;		File [] filelist = f.listFiles();&lt;br&gt;		for(int i=0;i&lt;filelist.length;i++){&lt;br&gt;			if(filelist[i].isDirectory()){&lt;br&gt;				deleteExcelFiles(filelist[i]);&lt;br&gt;				continue;&lt;br&gt;			}&lt;br&gt;			if(!filelist[i].toString().contains(&quot;.xls&quot;))&lt;br&gt;				continue;&lt;br&gt;			filelist[i].delete();&lt;br&gt;			this.createlogfile(&quot;deleted files&quot; + filelist[i] + &quot;at&quot;+this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime())+&quot;n&quot;);&lt;br&gt;		&lt;br&gt;		     &lt;br&gt;		}&lt;br&gt;		&lt;br&gt;	}&lt;br&gt;&lt;br&gt;&lt;br&gt;	/**&lt;br&gt;	 * Creates multiple excel files based on shipper code in input file&lt;br&gt;	 * &lt;br&gt;	 * @param pFileName&lt;br&gt;	 *            input file name&lt;br&gt;	 * @param pSiDateTime&lt;br&gt;	 *            BO variable&lt;br&gt;	 * @param pOutPath&lt;br&gt;	 *            Output directory name to store generated files&lt;br&gt;	 * @param i &lt;br&gt;	 */&lt;br&gt;	/*public void processWorkBook(String pFileName, String pSiDateTime,&lt;br&gt;			String pOutPath, int intIndex) {&lt;br&gt;		try {&lt;br&gt;			String outPath = &quot;.&quot;;&lt;br&gt;			if (pOutPath != null) {&lt;br&gt;				outPath = pOutPath;&lt;br&gt;			}&lt;br&gt;			WorkbookSettings ws = new WorkbookSettings();&lt;br&gt;			ws.setLocale(new Locale(&quot;en&quot;, &quot;EN&quot;));&lt;br&gt;&lt;br&gt;			Workbook workbook = Workbook.getWorkbook(new File(pFileName), ws);&lt;br&gt;			Sheet s = workbook.getSheet(0);&lt;br&gt;			int start = 0;&lt;br&gt;&lt;br&gt;			while ((start = searchRow(s, start + 2)) != -1) {&lt;br&gt;				createNewWorkBook(s, start, pSiDateTime, outPath,intIndex,new File(pFileName));&lt;br&gt;			}&lt;br&gt;			workbook.close();&lt;br&gt;		} catch (Exception e) {&lt;br&gt;			throw new RuntimeException(e);&lt;br&gt;		}&lt;br&gt;	}*/&lt;br&gt;	&lt;br&gt;	public void processWorkBook(String pFileName, String pSiDateTime,&lt;br&gt;			String pOutPath) {&lt;br&gt;		try {&lt;br&gt;			String outPath = &quot;.&quot;;&lt;br&gt;			if (pOutPath != null) {&lt;br&gt;				outPath = pOutPath;&lt;br&gt;			}&lt;br&gt;			WorkbookSettings ws = new WorkbookSettings();&lt;br&gt;			ws.setLocale(new Locale(&quot;en&quot;, &quot;EN&quot;));&lt;br&gt;&lt;br&gt;			Workbook workbook = Workbook.getWorkbook(new File(pFileName), ws);&lt;br&gt;			Sheet s = workbook.getSheet(0);&lt;br&gt;			int start = -2;&lt;br&gt;&lt;br&gt;			while ((start = searchRow(s, start + 2)) != -1) {&lt;br&gt;				createNewWorkBook(s, start, pSiDateTime, outPath,start + 2);&lt;br&gt;			}&lt;br&gt;			workbook.close();&lt;br&gt;		} catch (Exception e) {&lt;br&gt;			throw new RuntimeException(e);&lt;br&gt;		}&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	/**&lt;br&gt;	 * @param format&lt;br&gt;	 * @param d&lt;br&gt;	 * @return&lt;br&gt;	 */&lt;br&gt;	private String getCurrentDate(String format, Date d) {&lt;br&gt;		Format formatter = new SimpleDateFormat(format);&lt;br&gt;		return formatter.format(d);&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	/**&lt;br&gt;	 * @param ShipperCode&lt;br&gt;	 * @param siDateTime&lt;br&gt;	 * @param intIndex&lt;br&gt;	 * @param fileName2&lt;br&gt;	 * @return&lt;br&gt;	 */&lt;br&gt;	/*private String getFileName(String ShipperCode, String siDateTime,&lt;br&gt;			int intIndex, File fileName2) {&lt;br&gt;&lt;br&gt;			String fileName = &quot;IP026.PN_%Parent File%_%Shipper Short Code%_%SI_DATETIME(Bo variable)%.xls&quot;;&lt;br&gt;			String strInputFileName = fileName2.getName();&lt;br&gt;			String strDay = new String(strInputFileName.substring(strInputFileName.indexOf(&quot;days&quot;)-2,strInputFileName.indexOf(&quot;days&quot;)));&lt;br&gt;			String strParentFile = strInputFileName.substring(0,strInputFileName.indexOf(&quot;queries&quot;));&lt;br&gt;			if(strDay.equalsIgnoreCase(&quot;56&quot;)){&lt;br&gt;			fileName = fileName.replace(&quot;IP026.PN_%&quot;,&quot;IP027.PN_%&quot;);&lt;br&gt;			}else if(strDay.equalsIgnoreCase(&quot;70&quot;)){&lt;br&gt;			fileName = fileName.replace(&quot;IP026.PN_%&quot;,&quot;IP028.PN_%&quot;);&lt;br&gt;			}&lt;br&gt;			fileName = fileName.replace(&quot;%Parent File%&quot;, strParentFile);&lt;br&gt;			fileName = fileName.replace(&quot;%Shipper Short Code%&quot;, ShipperCode);&lt;br&gt;			Calendar cal = Calendar.getInstance();&lt;br&gt;			cal.add(Calendar.MONTH, -0);&lt;br&gt;			Date d = cal.getTime();&lt;br&gt;			String date1=getCurrentDate(&quot;yyyy-MM-dd&quot;,d);&lt;br&gt;			String time1= getCurrentDate(&quot;hh-mm-ss&quot;,d);&lt;br&gt;			fileName = fileName.replace(&quot;%SI_DATETIME(Bo variable)%&quot;,date1+&quot;-&quot;+time1);&lt;br&gt;			fileName = fileName.replace(&quot;.xls&quot;,&quot;.xls&quot;);&lt;br&gt;			return fileName;&lt;br&gt;			}*/&lt;br&gt;	private String getFileName(String ShipperCode, String siDateTime) {&lt;br&gt;		String fileName = &quot;IP00092.PN_%Shipper Short Code%_ADZ%Billing Month in MMYY format%_%SI_DATETIME(Bo variable)%.xls&quot;;&lt;br&gt;		fileName = fileName.replace(&quot;%Shipper Short Code%&quot;, ShipperCode);&lt;br&gt;		Calendar cal = Calendar.getInstance();&lt;br&gt;		cal.add(Calendar.MONTH, -1);&lt;br&gt;		Date d = cal.getTime();&lt;br&gt;		fileName = fileName.replace(&quot;%Billing Month in MMYY format%&quot;,&lt;br&gt;				getCurrentDate(&quot;MMyy&quot;, d));&lt;br&gt;		fileName = fileName.replace(&quot;%SI_DATETIME(Bo variable)%&quot;, siDateTime);&lt;br&gt;		return fileName;&lt;br&gt;	}&lt;br&gt;	&lt;br&gt;/**&lt;br&gt; * @param filename&lt;br&gt; * @param subject&lt;br&gt; * @param shipperCode&lt;br&gt; * @throws SQLException&lt;br&gt; */&lt;br&gt;@SuppressWarnings(&quot;unchecked&quot;)&lt;br&gt;public void sendEmail(String filename,String subject, String shipperCode) throws SQLException {&lt;br&gt;		&lt;br&gt;		String from = &quot;xoserve.ipwdevtandtest@xoserve.com&quot;;&lt;br&gt;	&lt;br&gt;		String bodyText = &quot;This is a important message with attachment&quot;+&quot;n&quot;+&quot;Please do not reply to this mail as it is a system generated mail&quot;+&quot;n&quot;+&quot;Incase of attachment problems please contact BO admin at rajendra.chandrashekar@tcs.com&quot;;&lt;br&gt;		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());&lt;br&gt;			    String serverName = this.readProperty(&quot;SERVERNAME&quot;);&lt;br&gt;			    int port =Integer.valueOf( this.readProperty(&quot;PORT&quot;));&lt;br&gt;			    String user = this .readProperty(&quot;USER&quot;);&lt;br&gt;			    String password = this.readProperty(&quot;PASSWORD&quot;);&lt;br&gt;			    String SID = this.readProperty(&quot;SID&quot;);&lt;br&gt;			    String URL = &quot;jdbc:oracle:thin:@&quot; + serverName + &quot;:&quot; + port + &quot;:&quot; + SID;&lt;br&gt;			    Connection conn = DriverManager.getConnection(URL, user, password);&lt;br&gt;			   &lt;br&gt;			    PreparedStatement stat = conn.prepareStatement(&quot;SELECT EMAIL_ID FROM SHIPPER_EMAIL WHERE SHIPPER_SHORT_CODE =?&quot;);&lt;br&gt;			    stat.setString(1, shipperCode);&lt;br&gt;			    ResultSet rs = stat.executeQuery();&lt;br&gt;			&lt;br&gt;			&lt;br&gt;&lt;br&gt;&lt;br&gt;		Properties properties = new Properties();&lt;br&gt;		properties.put(&quot;mail.smtp.host&quot;, &quot;10.140.84.69&quot;);&lt;br&gt;		properties.put(&quot;mail.smtp.port&quot;, &quot;25&quot;);&lt;br&gt;		Session session = Session.getInstance( properties, null);&lt;br&gt;		&lt;br&gt;		try {&lt;br&gt;			ArrayList tolist=new ArrayList();&lt;br&gt;			while(rs.next()){&lt;br&gt;			tolist.add(rs.getString(1));&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			//String[] mail = (String[]) tolist.toArray();&lt;br&gt;&lt;br&gt;			MimeMessage message = new MimeMessage(session);&lt;br&gt;			message.setFrom(new InternetAddress(from));&lt;br&gt;&lt;br&gt;			InternetAddress[] addressTo = new InternetAddress[tolist.size()];&lt;br&gt;			for (int i = 0; i &lt; tolist.size(); i++) {&lt;br&gt;			addressTo[i] = new InternetAddress((String) tolist.get(i));&lt;br&gt;			}&lt;br&gt;			message.setRecipients(Message.RecipientType.TO, addressTo);&lt;br&gt;			message.setSubject(subject);&lt;br&gt;			message.setSentDate(new Date());&lt;br&gt;&lt;br&gt;			//&lt;br&gt;			// Set the email message text.&lt;br&gt;			//&lt;br&gt;			MimeBodyPart messagePart = new MimeBodyPart();&lt;br&gt;			messagePart.setText(bodyText);&lt;br&gt;&lt;br&gt;			//&lt;br&gt;			// Set the email attachment file&lt;br&gt;			//&lt;br&gt;			MimeBodyPart attachmentPart = new MimeBodyPart();&lt;br&gt;			FileDataSource fileDataSource = new FileDataSource(filename) {&lt;br&gt;				@Override&lt;br&gt;				public String getContentType() {&lt;br&gt;					return &quot;application/octet-stream&quot;;&lt;br&gt;				}&lt;br&gt;			};&lt;br&gt;			attachmentPart.setDataHandler(new DataHandler(fileDataSource));&lt;br&gt;			attachmentPart.setFileName(subject);&lt;br&gt;&lt;br&gt;			Multipart multipart = new MimeMultipart();&lt;br&gt;			multipart.addBodyPart(messagePart);&lt;br&gt;			multipart.addBodyPart(attachmentPart);&lt;br&gt;&lt;br&gt;			message.setContent(multipart);&lt;br&gt;&lt;br&gt;			Transport.send(message);&lt;br&gt;			this.createlogfile(&quot;sent file &quot;+subject+&quot; to &quot;+ tolist +&quot; from &quot;+from+&quot; at &quot;+this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime())+&quot;n&quot;);&lt;br&gt;			&lt;br&gt;			&lt;br&gt;		}catch (MessagingException e) {&lt;br&gt;			e.printStackTrace();&lt;br&gt;		}&lt;br&gt;	&lt;br&gt;	}&lt;br&gt;    &lt;br&gt;	&lt;br&gt;}</description>
		<content:encoded><![CDATA[<p>package xl;</p>
<p>import java.io.BufferedInputStream;<br />import java.io.BufferedWriter;<br />import java.io.File;<br />import java.io.FileInputStream;<br />import java.io.FileNotFoundException;<br />import java.io.FileOutputStream;<br />import java.io.FileWriter;<br />import java.io.IOException;<br />import java.io.PrintStream;<br />import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.PreparedStatement;<br />import java.sql.ResultSet;<br />import java.sql.SQLException;<br />import java.text.Format;<br />import java.text.SimpleDateFormat;<br />import java.util.ArrayList;<br />import java.util.Calendar;<br />import java.util.Date;<br />import java.util.Locale;<br />import java.util.Properties;<br />import java.util.zip.ZipEntry;<br />import java.util.zip.ZipOutputStream;</p>
<p>import javax.activation.DataHandler;<br />import javax.activation.FileDataSource;<br />import javax.mail.Message;<br />import javax.mail.MessagingException;<br />import javax.mail.Multipart;<br />import javax.mail.Session;<br />import javax.mail.Transport;<br />import javax.mail.internet.InternetAddress;<br />import javax.mail.internet.MimeBodyPart;<br />import javax.mail.internet.MimeMessage;<br />import javax.mail.internet.MimeMultipart;</p>
<p>import jxl.Cell;<br />import jxl.CellType;<br />import jxl.DateCell;<br />import jxl.LabelCell;<br />import jxl.Sheet;<br />import jxl.Workbook;<br />import jxl.WorkbookSettings;<br />import jxl.write.WritableCellFormat;<br />import jxl.read.biff.*;</p>
<p>import org.apache.poi.hssf.usermodel.HSSFCellStyle;<br />import org.apache.poi.hssf.usermodel.HSSFDataFormat;<br />import org.apache.poi.hssf.usermodel.HSSFFont;<br />import org.apache.poi.hssf.usermodel.HSSFRow;<br />import org.apache.poi.hssf.usermodel.HSSFSheet;<br />import org.apache.poi.hssf.usermodel.HSSFWorkbook;<br />import org.apache.poi.hssf.util.HSSFColor;</p>
<p>public class ReadWriteSheet {</p>
<p>	/**<br />	 * creates the log file with the name as the mmmyyyy.log<br />	 * @param message<br />	 */<br />	public void createlogfile(String message){</p>
<p>		 try {<br />				 String name=this.readProperty(&#8220;OUTPUT_FOLDER&#8221;)+&#8221;\&#8221;+this.getCurrentDate(&#8220;MMMyyyy&#8221;, Calendar.getInstance().getTime())+&#8221;.log&#8221;;<br />				 FileWriter fstream = new FileWriter(name,true);<br />			        BufferedWriter out1 = new BufferedWriter(fstream);<br />			        out1.write(message);<br />			        out1.newLine();<br />			        //Close the output stream<br />			        out1.close();</p>
<p>			 }<br />			 catch(Exception e){//Catch exception if any<br />			      System.err.println(&#8220;Error: &#8221; + e.getMessage());<br />			    }<br />			  }</p>
<p>		/**<br />		 * <br />		 * @param strPropName<br />		 * @return<br />		 */<br />		public String readProperty(String strPropName)</p>
<p>		{</p>
<p>			// create an instance of properties class</p>
<p>			String strValue = &#8220;&#8221;;</p>
<p>			Properties props = new Properties();</p>
<p>			// try retrieve data from file</p>
<p>			try {</p>
<p>				File f = new File(System.getProperty(&#8220;user.dir&#8221;) + &#8220;\xl\&#8221;<br />						+ &#8220;message.properties&#8221;);<br />				props.load(new FileInputStream(f));</p>
<p>				strValue = props.getProperty(strPropName);</p>
<p>			}</p>
<p>			// catch exception in case properties file does not exist</p>
<p>			catch (IOException e)</p>
<p>			{</p>
<p>				e.printStackTrace();</p>
<p>			}</p>
<p>			return strValue;</p>
<p>		}</p>
<p>	/**<br />	 * @param s<br />	 * @param from<br />	 * @return<br />	 */<br />	/*private static int searchRow(Sheet s, int from) {<br />		try {<br />			for (int i = from; i &lt; s.getRows(); i++) {<br />				Cell c = s.getCell(0, i);<br />				if (c.getType() == CellType.LABEL) {<br />					LabelCell l = (LabelCell) c;<br />					if (&#8220;Supply Point Id&#8221;.equals(l.getString()))<br />						return i &#8211; 1;<br />				}<br />			}<br />		} catch (Exception e) {<br />			e.printStackTrace(new PrintStream(System.out));<br />		}<br />		return -1;<br />	}*/<br />		private static int searchRow(Sheet s, int from) {<br />			try {<br />				for (int i = from; i &lt; s.getRows(); i++) {<br />					Cell c = s.getCell(0, i);<br />					if (c.getType() == CellType.LABEL) {<br />						LabelCell l = (LabelCell) c;<br />						if (&#8220;Supply Point Id&#8221;.equals(l.getString()))<br />							return i &#8211; 1;<br />					}<br />					c = s.getCell(1, i);<br />					if (c.getType() == CellType.LABEL) {<br />						LabelCell l = (LabelCell) c;<br />						if (&#8220;Supply Point Id&#8221;.equals(l.getString()))<br />							return i &#8211; 1;<br />					}<br />				}<br />			} catch (Exception e) {<br />				e.printStackTrace(new PrintStream(System.out));<br />			}<br />			return -1;<br />		}</p>
<p>	/**<br />	 * @param f<br />	 * @param out<br />	 */<br />	public void createZipFile(File f, ZipOutputStream out) {</p>
<p>		final int BUFFER = 2048;</p>
<p>		try {</p>
<p>			BufferedInputStream origin = null;<br />			byte data[] = new byte[BUFFER];</p>
<p>			File [] files = f.listFiles();<br />			for (int i = 0; i &lt; files.length; i++) {<br />				if(files[i].isDirectory()){<br />					createZipFile(files[i], out);<br />					continue;<br />				}<br />				if(!files[i].toString().contains(&#8220;.xls&#8221;))<br />					continue;<br />				System.out.println(&#8220;Adding: &#8220;+files[i]);</p>
<p>				FileInputStream fi = new FileInputStream(files[i]);</p>
<p>				origin = new BufferedInputStream(fi, BUFFER);<br />				System.out.println(files[i].toString());</p>
<p>				ZipEntry entry = new ZipEntry(files[i].toString());</p>
<p>				out.putNextEntry(entry);</p>
<p>				int count;</p>
<p>				while ((count = origin.read(data, 0, BUFFER)) != -1) {<br />					System.out.println(data);<br />					System.out.println(count);<br />					out.write(data, 0, count);</p>
<p>				}</p>
<p>				origin.close();<br />				System.out.println(files[i]);<br />				this.createlogfile(&#8220;zipped the file &#8220;+files[i]+ &#8221; at&#8221; +this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime()));</p>
<p>			}</p>
<p>		} catch (Exception e) {</p>
<p>			e.printStackTrace();</p>
<p>		}</p>
<p>	}</p>
<p>	/**<br />	 * @param pSrcSheet<br />	 * @param pStartRow<br />	 * @param pSiDateTime<br />	 * @param pOutPath<br />	 * @param from <br />	 * @param intIndex<br />	 * @param fileName2<br />	 * @throws Exception<br />	 */<br />	/*private void createNewWorkBook(Sheet pSrcSheet, int pStartRow,<br />			String pSiDateTime, String pOutPath, int intIndex, File fileName2) throws Exception {</p>
<p>		LabelCell l = (LabelCell) pSrcSheet.getCell(0, pStartRow);<br />		String ShipperCode = l.getString();<br />		String filename = getFileName(ShipperCode, pSiDateTime,intIndex,fileName2);<br />		HSSFWorkbook wb          = new HSSFWorkbook();<br />		HSSFSheet sheet = wb.createSheet();<br />		FileOutputStream fileOut = new FileOutputStream(new File(pOutPath,filename));<br />		HSSFCellStyle cs = wb.createCellStyle();<br />		HSSFCellStyle cs1 = wb.createCellStyle();<br />		HSSFCellStyle cs2 = wb.createCellStyle();<br />		HSSFFont f = wb.createFont();<br />		HSSFFont f1 = wb.createFont();<br />		HSSFDataFormat form = wb.createDataFormat();<br />		f1.setColor(HSSFColor.WHITE.index);<br />		f1.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);<br />		f.setColor( HSSFColor.BLACK.index );<br />		f.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);<br />		cs.setFont(f);<br />		cs1.setDataFormat(form.getFormat(this.readProperty(&#8220;FORMAT&#8221;)));<br />		cs2.setFont(f1);<br />		cs2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);<br />		cs2.setFillForegroundColor(HSSFColor.BLUE_GREY.index);</p>
<p>		int dstRow = 0, srcRow = pStartRow;</p>
<p>		while (true) {</p>
<p>			Cell c = pSrcSheet.getCell(0, srcRow);<br />			if (c.getType() == CellType.EMPTY) {<br />				break;<br />			}<br />			copyRow2(pSrcSheet, srcRow, sheet, dstRow,cs,cs1);<br />			srcRow++;<br />			dstRow++;<br />		}<br />		HSSFRow row2 = sheet.getRow(1);<br />		int lastcol = row2.getLastCellNum();<br />		for(int i = 0; i&lt;lastcol; i++){<br />			row2.getCell(i).setCellStyle(cs2);<br />			sheet.autoSizeColumn((short) i); </p>
<p>		}<br />		wb.write(fileOut);<br />		fileOut.close();<br />		String strOutFolderName = this.readProperty(&#8220;OUTPUT_FOLDER&#8221;);<br />		this.createlogfile(&#8220;created file &#8220;+filename+&#8221;at &#8220;+this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime()));<br />		this.sendEmail(strOutFolderName+&#8221;\&#8221;+filename,filename,ShipperCode);<br />	}*/<br />	private void createNewWorkBook(Sheet pSrcSheet, int pStartRow,<br />			String pSiDateTime, String pOutPath, int from) throws Exception {<br />		LabelCell l = (LabelCell) pSrcSheet.getCell(0, pStartRow);<br />		String ShipperCode = l.getString();<br />		String filename = getFileName(ShipperCode, pSiDateTime);</p>
<p>		// WorkbookSettings ws = new WorkbookSettings();<br />		// ws.setLocale(new Locale(&#8220;en&#8221;, &#8220;EN&#8221;));<br />		// WritableWorkbook workbook = Workbook.createWorkbook(new<br />		// File(pOutPath,<br />		// filename), ws);<br />		HSSFWorkbook wb = new HSSFWorkbook();<br />		HSSFSheet sheet = wb.createSheet();<br />		FileOutputStream fileOut = new FileOutputStream(new File(pOutPath,<br />				filename));</p>
<p>		// WritableSheet dstSheet = workbook.createSheet(&#8220;Sheet1&#8243;, 0);<br />		int dstRow = 0, srcRow = pStartRow;</p>
<p>		while (true) {<br />			Cell c = pSrcSheet.getCell(0, srcRow);<br />			Cell c2 = pSrcSheet.getCell(1, srcRow);<br />			if (c.getType() == CellType.EMPTY &#038;&#038; c2.getType() == CellType.EMPTY) {<br />				break;<br />			}<br />			// copyRow(pSrcSheet, srcRow, dstSheet, dstRow);<br />			copyRow2(pSrcSheet, srcRow, sheet, dstRow,from);<br />			srcRow++;<br />			dstRow++;<br />		}<br />		wb.write(fileOut);<br />		fileOut.close();</p>
<p>		// workbook.write();<br />		// workbook.close();<br />	}</p>
<p>	/**<br />	 * @param srcSheet<br />	 * @param startRow<br />	 * @param dstSheet<br />	 * @param dstRow<br />	 * @param cs<br />	 * @param cs1<br />	 * @throws Exception<br />	 */<br />	@SuppressWarnings(&#8220;deprecation&#8221;)<br />	/*private static void copyRow2(Sheet srcSheet, int startRow,<br />			 HSSFSheet dstSheet, int dstRow, HSSFCellStyle cs, HSSFCellStyle cs1) throws Exception {<br />		 HSSFRow row     = dstSheet.createRow((short)dstRow);<br />		 HSSFRow row1 = dstSheet.getRow(0);</p>
<p>		 int count=-1;<br />		 	Cell[] cells = srcSheet.getRow(startRow);</p>
<p>			for (Cell c : cells) {<br />				if (c.getType() == CellType.LABEL) {<br />					LabelCell l = (LabelCell) c;<br />					@SuppressWarnings(&#8220;unused&#8221;)<br />					WritableCellFormat f = new WritableCellFormat(c.getCellFormat());<br />					row.createCell(++count).setCellValue(l.getContents());</p>
<p>				}<br />				if (c.getType() == CellType.DATE) {<br />					DateCell dt = (DateCell) c;<br />					@SuppressWarnings(&#8220;unused&#8221;)<br />					WritableCellFormat f = new WritableCellFormat(c.getCellFormat());<br />					row.createCell(++count).setCellValue(dt.getDate());<br />					row.getCell(count).setCellStyle(cs1);</p>
<p>				}<br />			}<br />			row1.getCell(0).setCellStyle(cs);</p>
<p>	}*/<br />	private static void copyRow2(Sheet srcSheet, int startRow,<br />			HSSFSheet dstSheet, int dstRow,int from) throws Exception {<br />		HSSFRow row = dstSheet.createRow((short) dstRow);<br />		int count = 0;<br />		Cell[] cells = srcSheet.getRow(startRow);<br />		for (Cell c : cells) {<br />			if (c.getType() == CellType.LABEL) {<br />				LabelCell l = (LabelCell) c;</p>
<p>				WritableCellFormat f = new WritableCellFormat(c.getCellFormat());<br />				// dstSheet.addCell(new Label(c.getColumn(), dstRow,<br />				// l.getString(), f));<br />				row.createCell(count++).setCellValue(l.getContents());<br />			}<br />			if (c.getType() == CellType.DATE) {<br />				DateCell dt = (DateCell) c;<br />				WritableCellFormat f = new WritableCellFormat(c.getCellFormat());<br />				// dstSheet.addCell(new DateTime(c.getColumn(), dstRow, dt<br />				// .getDate(), f));<br />				row.createCell(count++).setCellValue(dt.getDate());<br />			}<br />		}<br />	}</p>
<p>	/**<br />	 * @param args<br />	 * @throws IOException<br />	 */<br />	public static void main(String[] args) throws IOException {<br />		ReadWriteSheet rws = new ReadWriteSheet();<br />		try {<br />			rws.createlogfile(&#8220;started process at &#8220;+ rws.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime()));<br />			String strInpFolderName = rws.readProperty(&#8220;INPUT_FOLDER&#8221;);<br />			String strOutFolderName = rws.readProperty(&#8220;OUTPUT_FOLDER&#8221;);<br />			File f = new File(strInpFolderName); // here pass the directory</p>
<p>			File files[] = f.listFiles(); // this will give you a list of excel<br />			// files in the directory<br />			Calendar cal = Calendar.getInstance();<br />			Date d = cal.getTime();<br />			String fileName = rws.getCurrentDate(&#8220;ddMMyyyy&#8221;, d)+&#8221;.zip&#8221;;<br />			FileOutputStream dest = null;<br />			try {<br />				dest = new FileOutputStream(strOutFolderName<br />						+ &#8220;\&#8221; + fileName);<br />			} catch (FileNotFoundException e) {<br />				// TODO Auto-generated catch block<br />				e.printStackTrace();<br />			}</p>
<p>			ZipOutputStream out = new ZipOutputStream(dest);<br />			for (int i = 0; i &lt; files.length; i++) {<br />				if(!files[i].toString().contains(&#8220;.&#8221;))<br />					continue;<br />				rws.processWorkBook(files[i].toString(), &#8220;20090601&#8243;, strOutFolderName);<br />			}<br />			rws.createZipFile(f, out);<br />			out.close();<br />			rws.deleteExcelFiles(f);</p>
<p>		} catch (RuntimeException ex) {<br />			ex.printStackTrace(new PrintStream(System.out));<br />		}<br />	}</p>
<p>	/**<br />	 * @param f<br />	 */<br />	private void deleteExcelFiles(File f) {<br />		File [] filelist = f.listFiles();<br />		for(int i=0;i&lt;filelist.length;i++){<br />			if(filelist[i].isDirectory()){<br />				deleteExcelFiles(filelist[i]);<br />				continue;<br />			}<br />			if(!filelist[i].toString().contains(&#8220;.xls&#8221;))<br />				continue;<br />			filelist[i].delete();<br />			this.createlogfile(&#8220;deleted files&#8221; + filelist[i] + &#8220;at&#8221;+this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime())+&#8221;n&#8221;);</p>
<p>		}</p>
<p>	}</p>
<p>	/**<br />	 * Creates multiple excel files based on shipper code in input file<br />	 * <br />	 * @param pFileName<br />	 *            input file name<br />	 * @param pSiDateTime<br />	 *            BO variable<br />	 * @param pOutPath<br />	 *            Output directory name to store generated files<br />	 * @param i <br />	 */<br />	/*public void processWorkBook(String pFileName, String pSiDateTime,<br />			String pOutPath, int intIndex) {<br />		try {<br />			String outPath = &#8220;.&#8221;;<br />			if (pOutPath != null) {<br />				outPath = pOutPath;<br />			}<br />			WorkbookSettings ws = new WorkbookSettings();<br />			ws.setLocale(new Locale(&#8220;en&#8221;, &#8220;EN&#8221;));</p>
<p>			Workbook workbook = Workbook.getWorkbook(new File(pFileName), ws);<br />			Sheet s = workbook.getSheet(0);<br />			int start = 0;</p>
<p>			while ((start = searchRow(s, start + 2)) != -1) {<br />				createNewWorkBook(s, start, pSiDateTime, outPath,intIndex,new File(pFileName));<br />			}<br />			workbook.close();<br />		} catch (Exception e) {<br />			throw new RuntimeException(e);<br />		}<br />	}*/</p>
<p>	public void processWorkBook(String pFileName, String pSiDateTime,<br />			String pOutPath) {<br />		try {<br />			String outPath = &#8220;.&#8221;;<br />			if (pOutPath != null) {<br />				outPath = pOutPath;<br />			}<br />			WorkbookSettings ws = new WorkbookSettings();<br />			ws.setLocale(new Locale(&#8220;en&#8221;, &#8220;EN&#8221;));</p>
<p>			Workbook workbook = Workbook.getWorkbook(new File(pFileName), ws);<br />			Sheet s = workbook.getSheet(0);<br />			int start = -2;</p>
<p>			while ((start = searchRow(s, start + 2)) != -1) {<br />				createNewWorkBook(s, start, pSiDateTime, outPath,start + 2);<br />			}<br />			workbook.close();<br />		} catch (Exception e) {<br />			throw new RuntimeException(e);<br />		}<br />	}</p>
<p>	/**<br />	 * @param format<br />	 * @param d<br />	 * @return<br />	 */<br />	private String getCurrentDate(String format, Date d) {<br />		Format formatter = new SimpleDateFormat(format);<br />		return formatter.format(d);<br />	}</p>
<p>	/**<br />	 * @param ShipperCode<br />	 * @param siDateTime<br />	 * @param intIndex<br />	 * @param fileName2<br />	 * @return<br />	 */<br />	/*private String getFileName(String ShipperCode, String siDateTime,<br />			int intIndex, File fileName2) {</p>
<p>			String fileName = &#8220;IP026.PN_%Parent File%_%Shipper Short Code%_%SI_DATETIME(Bo variable)%.xls&#8221;;<br />			String strInputFileName = fileName2.getName();<br />			String strDay = new String(strInputFileName.substring(strInputFileName.indexOf(&#8220;days&#8221;)-2,strInputFileName.indexOf(&#8220;days&#8221;)));<br />			String strParentFile = strInputFileName.substring(0,strInputFileName.indexOf(&#8220;queries&#8221;));<br />			if(strDay.equalsIgnoreCase(&#8220;56&#8243;)){<br />			fileName = fileName.replace(&#8220;IP026.PN_%&#8221;,&#8221;IP027.PN_%&#8221;);<br />			}else if(strDay.equalsIgnoreCase(&#8220;70&#8243;)){<br />			fileName = fileName.replace(&#8220;IP026.PN_%&#8221;,&#8221;IP028.PN_%&#8221;);<br />			}<br />			fileName = fileName.replace(&#8220;%Parent File%&#8221;, strParentFile);<br />			fileName = fileName.replace(&#8220;%Shipper Short Code%&#8221;, ShipperCode);<br />			Calendar cal = Calendar.getInstance();<br />			cal.add(Calendar.MONTH, -0);<br />			Date d = cal.getTime();<br />			String date1=getCurrentDate(&#8220;yyyy-MM-dd&#8221;,d);<br />			String time1= getCurrentDate(&#8220;hh-mm-ss&#8221;,d);<br />			fileName = fileName.replace(&#8220;%SI_DATETIME(Bo variable)%&#8221;,date1+&#8221;-&#8221;+time1);<br />			fileName = fileName.replace(&#8220;.xls&#8221;,&#8221;.xls&#8221;);<br />			return fileName;<br />			}*/<br />	private String getFileName(String ShipperCode, String siDateTime) {<br />		String fileName = &#8220;IP00092.PN_%Shipper Short Code%_ADZ%Billing Month in MMYY format%_%SI_DATETIME(Bo variable)%.xls&#8221;;<br />		fileName = fileName.replace(&#8220;%Shipper Short Code%&#8221;, ShipperCode);<br />		Calendar cal = Calendar.getInstance();<br />		cal.add(Calendar.MONTH, -1);<br />		Date d = cal.getTime();<br />		fileName = fileName.replace(&#8220;%Billing Month in MMYY format%&#8221;,<br />				getCurrentDate(&#8220;MMyy&#8221;, d));<br />		fileName = fileName.replace(&#8220;%SI_DATETIME(Bo variable)%&#8221;, siDateTime);<br />		return fileName;<br />	}</p>
<p>/**<br /> * @param filename<br /> * @param subject<br /> * @param shipperCode<br /> * @throws SQLException<br /> */<br />@SuppressWarnings(&#8220;unchecked&#8221;)<br />public void sendEmail(String filename,String subject, String shipperCode) throws SQLException {</p>
<p>		String from = &#8220;xoserve.ipwdevtandtest@xoserve.com&#8221;;</p>
<p>		String bodyText = &#8220;This is a important message with attachment&#8221;+&#8221;n&#8221;+&#8221;Please do not reply to this mail as it is a system generated mail&#8221;+&#8221;n&#8221;+&#8221;Incase of attachment problems please contact BO admin at <a href="mailto:rajendra.chandrashekar@tcs.com">rajendra.chandrashekar@tcs.com</a>&#8220;;<br />		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());<br />			    String serverName = this.readProperty(&#8220;SERVERNAME&#8221;);<br />			    int port =Integer.valueOf( this.readProperty(&#8220;PORT&#8221;));<br />			    String user = this .readProperty(&#8220;USER&#8221;);<br />			    String password = this.readProperty(&#8220;PASSWORD&#8221;);<br />			    String SID = this.readProperty(&#8220;SID&#8221;);<br />			    String URL = &#8220;jdbc:oracle:thin:@&#8221; + serverName + &#8220;:&#8221; + port + &#8220;:&#8221; + SID;<br />			    Connection conn = DriverManager.getConnection(URL, user, password);</p>
<p>			    PreparedStatement stat = conn.prepareStatement(&#8220;SELECT EMAIL_ID FROM SHIPPER_EMAIL WHERE SHIPPER_SHORT_CODE =?&#8221;);<br />			    stat.setString(1, shipperCode);<br />			    ResultSet rs = stat.executeQuery();</p>
<p>		Properties properties = new Properties();<br />		properties.put(&#8220;mail.smtp.host&#8221;, &#8220;10.140.84.69&#8243;);<br />		properties.put(&#8220;mail.smtp.port&#8221;, &#8220;25&#8243;);<br />		Session session = Session.getInstance( properties, null);</p>
<p>		try {<br />			ArrayList tolist=new ArrayList();<br />			while(rs.next()){<br />			tolist.add(rs.getString(1));<br />			}</p>
<p>			//String[] mail = (String[]) tolist.toArray();</p>
<p>			MimeMessage message = new MimeMessage(session);<br />			message.setFrom(new InternetAddress(from));</p>
<p>			InternetAddress[] addressTo = new InternetAddress[tolist.size()];<br />			for (int i = 0; i &lt; tolist.size(); i++) {<br />			addressTo[i] = new InternetAddress((String) tolist.get(i));<br />			}<br />			message.setRecipients(Message.RecipientType.TO, addressTo);<br />			message.setSubject(subject);<br />			message.setSentDate(new Date());</p>
<p>			//<br />			// Set the email message text.<br />			//<br />			MimeBodyPart messagePart = new MimeBodyPart();<br />			messagePart.setText(bodyText);</p>
<p>			//<br />			// Set the email attachment file<br />			//<br />			MimeBodyPart attachmentPart = new MimeBodyPart();<br />			FileDataSource fileDataSource = new FileDataSource(filename) {<br />				@Override<br />				public String getContentType() {<br />					return &#8220;application/octet-stream&#8221;;<br />				}<br />			};<br />			attachmentPart.setDataHandler(new DataHandler(fileDataSource));<br />			attachmentPart.setFileName(subject);</p>
<p>			Multipart multipart = new MimeMultipart();<br />			multipart.addBodyPart(messagePart);<br />			multipart.addBodyPart(attachmentPart);</p>
<p>			message.setContent(multipart);</p>
<p>			Transport.send(message);<br />			this.createlogfile(&#8220;sent file &#8220;+subject+&#8221; to &#8220;+ tolist +&#8221; from &#8220;+from+&#8221; at &#8220;+this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime())+&#8221;n&#8221;);</p>
<p>		}catch (MessagingException e) {<br />			e.printStackTrace();<br />		}</p>
<p>	}</p>
<p>}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anu</title>
		<link>http://blog.vaishaksuresh.com/2009/04/15/terminator-meets-kuch-kuch-hota-hai/comment-page-1/#comment-112</link>
		<dc:creator>anu</dc:creator>
		<pubDate>Tue, 14 Jul 2009 15:12:42 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vaishaksuresh.com/?p=75#comment-112</guid>
		<description>package xl;&lt;br&gt;&lt;br&gt;import java.io.BufferedInputStream;&lt;br&gt;import java.io.BufferedWriter;&lt;br&gt;import java.io.File;&lt;br&gt;import java.io.FileInputStream;&lt;br&gt;import java.io.FileNotFoundException;&lt;br&gt;import java.io.FileOutputStream;&lt;br&gt;import java.io.FileWriter;&lt;br&gt;import java.io.IOException;&lt;br&gt;import java.io.PrintStream;&lt;br&gt;import java.sql.Connection;&lt;br&gt;import java.sql.DriverManager;&lt;br&gt;import java.sql.PreparedStatement;&lt;br&gt;import java.sql.ResultSet;&lt;br&gt;import java.sql.SQLException;&lt;br&gt;import java.text.Format;&lt;br&gt;import java.text.SimpleDateFormat;&lt;br&gt;import java.util.ArrayList;&lt;br&gt;import java.util.Calendar;&lt;br&gt;import java.util.Date;&lt;br&gt;import java.util.Locale;&lt;br&gt;import java.util.Properties;&lt;br&gt;import java.util.zip.ZipEntry;&lt;br&gt;import java.util.zip.ZipOutputStream;&lt;br&gt;&lt;br&gt;import javax.activation.DataHandler;&lt;br&gt;import javax.activation.FileDataSource;&lt;br&gt;import javax.mail.Message;&lt;br&gt;import javax.mail.MessagingException;&lt;br&gt;import javax.mail.Multipart;&lt;br&gt;import javax.mail.Session;&lt;br&gt;import javax.mail.Transport;&lt;br&gt;import javax.mail.internet.InternetAddress;&lt;br&gt;import javax.mail.internet.MimeBodyPart;&lt;br&gt;import javax.mail.internet.MimeMessage;&lt;br&gt;import javax.mail.internet.MimeMultipart;&lt;br&gt;&lt;br&gt;import jxl.Cell;&lt;br&gt;import jxl.CellType;&lt;br&gt;import jxl.DateCell;&lt;br&gt;import jxl.LabelCell;&lt;br&gt;import jxl.Sheet;&lt;br&gt;import jxl.Workbook;&lt;br&gt;import jxl.WorkbookSettings;&lt;br&gt;import jxl.write.WritableCellFormat;&lt;br&gt;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFCellStyle;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFDataFormat;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFFont;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFRow;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFSheet;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFWorkbook;&lt;br&gt;import org.apache.poi.hssf.util.HSSFColor;&lt;br&gt;&lt;br&gt;public class ReadWriteSheet {&lt;br&gt;	&lt;br&gt;	&lt;br&gt;	&lt;br&gt;	public void createlogfile(String message){&lt;br&gt;		&lt;br&gt;		 try {&lt;br&gt;				 String name=this.readProperty(&quot;OUTPUT_FOLDER&quot;)+&quot;//&quot;+this.getCurrentDate(&quot;MMMyyyy&quot;, Calendar.getInstance().getTime())+&quot;.log&quot;;&lt;br&gt;				 FileWriter fstream = new FileWriter(name,true);&lt;br&gt;			        BufferedWriter out1 = new BufferedWriter(fstream);&lt;br&gt;			        out1.write(message);&lt;br&gt;			        out1.newLine();&lt;br&gt;			        //Close the output stream&lt;br&gt;			        out1.close();&lt;br&gt;&lt;br&gt;			 }&lt;br&gt;			 catch(Exception e){//Catch exception if any&lt;br&gt;			      System.err.println(&quot;Error: &quot; + e.getMessage());&lt;br&gt;			    }&lt;br&gt;			  }&lt;br&gt;	 &lt;br&gt;&lt;br&gt;		public String readProperty(String strPropName)&lt;br&gt;&lt;br&gt;		{&lt;br&gt;&lt;br&gt;			// create an instance of properties class&lt;br&gt;&lt;br&gt;			String strValue = &quot;&quot;;&lt;br&gt;&lt;br&gt;			Properties props = new Properties();&lt;br&gt;&lt;br&gt;			// try retrieve data from file&lt;br&gt;&lt;br&gt;			try {&lt;br&gt;&lt;br&gt;				File f = new File(System.getProperty(&quot;user.dir&quot;) + &quot;\xl\&quot;&lt;br&gt;						+ &quot;message.properties&quot;);&lt;br&gt;				props.load(new FileInputStream(f));&lt;br&gt;&lt;br&gt;				strValue = props.getProperty(strPropName);&lt;br&gt;&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			// catch exception in case properties file does not exist&lt;br&gt;&lt;br&gt;			catch (IOException e)&lt;br&gt;&lt;br&gt;			{&lt;br&gt;&lt;br&gt;				e.printStackTrace();&lt;br&gt;&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			return strValue;&lt;br&gt;&lt;br&gt;		}&lt;br&gt;&lt;br&gt;	private static int searchRow(Sheet s, int from) {&lt;br&gt;		try {&lt;br&gt;			for (int i = from; i &lt; s.getRows(); i++) {&lt;br&gt;				Cell c = s.getCell(0, i);&lt;br&gt;				if (c.getType() == CellType.LABEL) {&lt;br&gt;					LabelCell l = (LabelCell) c;&lt;br&gt;					if (&quot;Supply Point Id&quot;.equals(l.getString()))&lt;br&gt;						return i - 1;&lt;br&gt;				}&lt;br&gt;			}&lt;br&gt;		} catch (Exception e) {&lt;br&gt;			e.printStackTrace(new PrintStream(System.out));&lt;br&gt;		}&lt;br&gt;		return -1;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	&lt;br&gt;	&lt;br&gt;	public void createZipFile(File f, ZipOutputStream out) {&lt;br&gt;&lt;br&gt;		final int BUFFER = 2048;&lt;br&gt;		 &lt;br&gt;&lt;br&gt;		try {&lt;br&gt;&lt;br&gt;			BufferedInputStream origin = null;&lt;br&gt;			byte data[] = new byte[BUFFER];&lt;br&gt;&lt;br&gt;			File [] files = f.listFiles();&lt;br&gt;			for (int i = 0; i &lt; files.length; i++) {&lt;br&gt;				if(files[i].isDirectory()){&lt;br&gt;					createZipFile(files[i], out);&lt;br&gt;					continue;&lt;br&gt;				}&lt;br&gt;				if(!files[i].toString().contains(&quot;.xls&quot;))&lt;br&gt;					continue;&lt;br&gt;				System.out.println(&quot;Adding: &quot;+files[i]);&lt;br&gt;&lt;br&gt;				FileInputStream fi = new FileInputStream(files[i]);&lt;br&gt;&lt;br&gt;				origin = new BufferedInputStream(fi, BUFFER);&lt;br&gt;				System.out.println(files[i].toString());&lt;br&gt;				&lt;br&gt;				ZipEntry entry = new ZipEntry(files[i].toString());&lt;br&gt;				&lt;br&gt;				out.putNextEntry(entry);&lt;br&gt;&lt;br&gt;				int count;&lt;br&gt;&lt;br&gt;				while ((count = origin.read(data, 0, BUFFER)) != -1) {&lt;br&gt;					System.out.println(data);&lt;br&gt;					System.out.println(count);&lt;br&gt;					out.write(data, 0, count);&lt;br&gt;&lt;br&gt;				}&lt;br&gt;				&lt;br&gt;				origin.close();&lt;br&gt;				System.out.println(files[i]);&lt;br&gt;				this.createlogfile(&quot;zipped the file &quot;+files[i]+ &quot; at&quot; +this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime()));&lt;br&gt;				  &lt;br&gt;&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			&lt;br&gt;&lt;br&gt;		} catch (Exception e) {&lt;br&gt;&lt;br&gt;			e.printStackTrace();&lt;br&gt;&lt;br&gt;		}&lt;br&gt;		&lt;br&gt;&lt;br&gt;	}&lt;br&gt;	&lt;br&gt;	&lt;br&gt;	private void createNewWorkBook(Sheet pSrcSheet, int pStartRow,&lt;br&gt;			String pSiDateTime, String pOutPath, int intIndex, File fileName2) throws Exception {&lt;br&gt;		&lt;br&gt;		LabelCell l = (LabelCell) pSrcSheet.getCell(0, pStartRow);&lt;br&gt;		String ShipperCode = l.getString();&lt;br&gt;		String filename = getFileName(ShipperCode, pSiDateTime,intIndex,fileName2);&lt;br&gt;&lt;br&gt;		//WorkbookSettings ws = new WorkbookSettings();&lt;br&gt;		//ws.setLocale(new Locale(&quot;en&quot;, &quot;EN&quot;));&lt;br&gt;		//WritableWorkbook workbook = Workbook.createWorkbook(new File(pOutPath,&lt;br&gt;		//		filename), ws);&lt;br&gt;		HSSFWorkbook wb          = new HSSFWorkbook();&lt;br&gt;		HSSFSheet sheet = wb.createSheet();&lt;br&gt;		FileOutputStream fileOut = new FileOutputStream(new File(pOutPath,filename));&lt;br&gt;		HSSFCellStyle cs = wb.createCellStyle();&lt;br&gt;		HSSFCellStyle cs2 = wb.createCellStyle();&lt;br&gt;		HSSFFont f = wb.createFont();&lt;br&gt;		&lt;br&gt;		f.setColor( HSSFColor.BLACK.index );&lt;br&gt;		f.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);&lt;br&gt;		cs.setFont(f);&lt;br&gt;		cs2.setFont(f);&lt;br&gt;		cs2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);&lt;br&gt;		cs2.setFillForegroundColor(HSSFColor.CORNFLOWER_BLUE.index);&lt;br&gt;		//cs.setDataFormat(df.getFormat(&quot;#,##0.0&quot;));&lt;br&gt;		&lt;br&gt;&lt;br&gt;		&lt;br&gt;		&lt;br&gt;		&lt;br&gt;		//WritableSheet dstSheet = workbook.createSheet(&quot;Sheet1&quot;, 0);&lt;br&gt;		int dstRow = 0, srcRow = pStartRow;&lt;br&gt;&lt;br&gt;		while (true) {&lt;br&gt;			&lt;br&gt;			Cell c = pSrcSheet.getCell(0, srcRow);&lt;br&gt;			if (c.getType() == CellType.EMPTY) {&lt;br&gt;				break;&lt;br&gt;			}&lt;br&gt;			//copyRow(pSrcSheet, srcRow, dstSheet, dstRow);&lt;br&gt;			copyRow2(pSrcSheet, srcRow, sheet, dstRow,cs);&lt;br&gt;			srcRow++;&lt;br&gt;			dstRow++;&lt;br&gt;		}&lt;br&gt;		HSSFRow row2 = sheet.getRow(1);&lt;br&gt;		int abc = row2.getLastCellNum();&lt;br&gt;		for(int i = 0; i&lt;abc; i++){&lt;br&gt;			row2.getCell(i).setCellStyle(cs2);	&lt;br&gt;		}&lt;br&gt;		wb.write(fileOut);&lt;br&gt;		fileOut.close();&lt;br&gt;		String strOutFolderName = this.readProperty(&quot;OUTPUT_FOLDER&quot;);&lt;br&gt;		this.createlogfile(&quot;created file &quot;+filename+&quot;at &quot;+this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime()));&lt;br&gt;		this.sendEmail(strOutFolderName+&quot;\&quot;+filename,filename,ShipperCode);&lt;br&gt;		//workbook.write();&lt;br&gt;		//workbook.close();&lt;br&gt;	}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;	@SuppressWarnings(&quot;deprecation&quot;)&lt;br&gt;	private static void copyRow2(Sheet srcSheet, int startRow,&lt;br&gt;			 HSSFSheet dstSheet, int dstRow, HSSFCellStyle cs) throws Exception {&lt;br&gt;		 HSSFRow row     = dstSheet.createRow((short)dstRow);&lt;br&gt;		 HSSFRow row1 = dstSheet.getRow(0);&lt;br&gt;		&lt;br&gt;&lt;br&gt;		 int count=-1;&lt;br&gt;		 	Cell[] cells = srcSheet.getRow(startRow);&lt;br&gt;			 &lt;br&gt;			for (Cell c : cells) {&lt;br&gt;				if (c.getType() == CellType.LABEL) {&lt;br&gt;					LabelCell l = (LabelCell) c;&lt;br&gt;					@SuppressWarnings(&quot;unused&quot;)&lt;br&gt;					WritableCellFormat f = new WritableCellFormat(c.getCellFormat());&lt;br&gt;					//dstSheet.addCell(new Label(c.getColumn(), dstRow,&lt;br&gt;					//		l.getString(), f));&lt;br&gt;					row.createCell(++count).setCellValue(l.getContents());&lt;br&gt;					&lt;br&gt;					&lt;br&gt;				}&lt;br&gt;				if (c.getType() == CellType.DATE) {&lt;br&gt;					DateCell dt = (DateCell) c;&lt;br&gt;					@SuppressWarnings(&quot;unused&quot;)&lt;br&gt;					WritableCellFormat f = new WritableCellFormat(c.getCellFormat());&lt;br&gt;//					dstSheet.addCell(new DateTime(c.getColumn(), dstRow, dt&lt;br&gt;//							.getDate(), f));&lt;br&gt;					row.createCell(++count).setCellValue(dt.getDate());&lt;br&gt;				}&lt;br&gt;			}&lt;br&gt;			row1.getCell(0).setCellStyle(cs);&lt;br&gt;&lt;br&gt;	}&lt;br&gt;	public static void main(String[] args) throws IOException {&lt;br&gt;		ReadWriteSheet rws = new ReadWriteSheet();&lt;br&gt;		//String files1[] = { &quot;Supply point ids.xls&quot; };&lt;br&gt;		try {&lt;br&gt;			rws.createlogfile(&quot;started process at &quot;+ rws.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime()));&lt;br&gt;			String strInpFolderName = rws.readProperty(&quot;INPUT_FOLDER&quot;);&lt;br&gt;			String strOutFolderName = rws.readProperty(&quot;OUTPUT_FOLDER&quot;);&lt;br&gt;			File f = new File(strInpFolderName); // here pass the directory&lt;br&gt;			&lt;br&gt;			File files[] = f.listFiles(); // this will give you a list of excel&lt;br&gt;			// files in the directory&lt;br&gt;			Calendar cal = Calendar.getInstance();&lt;br&gt;			Date d = cal.getTime();&lt;br&gt;			String fileName = rws.getCurrentDate(&quot;ddMMyyyy&quot;, d)+&quot;.zip&quot;;&lt;br&gt;			FileOutputStream dest = null;&lt;br&gt;			try {&lt;br&gt;				dest = new FileOutputStream(strOutFolderName&lt;br&gt;						+ &quot;\&quot; + fileName);&lt;br&gt;			} catch (FileNotFoundException e) {&lt;br&gt;				// TODO Auto-generated catch block&lt;br&gt;				e.printStackTrace();&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			ZipOutputStream out = new ZipOutputStream(dest);&lt;br&gt;			for (int i = 0; i &lt; files.length; i++) {&lt;br&gt;				if(!files[i].toString().contains(&quot;.&quot;))&lt;br&gt;					continue;&lt;br&gt;				//for (String file : files)&lt;br&gt;				rws.processWorkBook(files[i].toString(), &quot;20090601&quot;, strOutFolderName,i);&lt;br&gt;			}&lt;br&gt;			rws.createZipFile(f, out);&lt;br&gt;			out.close();&lt;br&gt;			rws.deleteExcelFiles(f);&lt;br&gt;			&lt;br&gt;&lt;br&gt;&lt;br&gt;		} catch (RuntimeException ex) {&lt;br&gt;			ex.printStackTrace(new PrintStream(System.out));&lt;br&gt;		}&lt;br&gt;	}&lt;br&gt;	&lt;br&gt;	&lt;br&gt;	private void deleteExcelFiles(File f) {&lt;br&gt;		File [] filelist = f.listFiles();&lt;br&gt;		for(int i=0;i&lt;filelist.length;i++){&lt;br&gt;			if(filelist[i].isDirectory()){&lt;br&gt;				deleteExcelFiles(filelist[i]);&lt;br&gt;				continue;&lt;br&gt;			}&lt;br&gt;			if(!filelist[i].toString().contains(&quot;.xls&quot;))&lt;br&gt;				continue;&lt;br&gt;			filelist[i].delete();&lt;br&gt;			this.createlogfile(&quot;deleted files&quot; + filelist[i] + &quot;at&quot;+this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime())+&quot;n&quot;);&lt;br&gt;		&lt;br&gt;		     &lt;br&gt;		}&lt;br&gt;		&lt;br&gt;	}&lt;br&gt;&lt;br&gt;&lt;br&gt;	/**&lt;br&gt;	 * Creates multiple excel files based on shipper code in input file&lt;br&gt;	 * &lt;br&gt;	 * @param pFileName&lt;br&gt;	 *            input file name&lt;br&gt;	 * @param pSiDateTime&lt;br&gt;	 *            BO variable&lt;br&gt;	 * @param pOutPath&lt;br&gt;	 *            Output directory name to store generated files&lt;br&gt;	 * @param i &lt;br&gt;	 */&lt;br&gt;	public void processWorkBook(String pFileName, String pSiDateTime,&lt;br&gt;			String pOutPath, int intIndex) {&lt;br&gt;		try {&lt;br&gt;			String outPath = &quot;.&quot;;&lt;br&gt;			if (pOutPath != null) {&lt;br&gt;				outPath = pOutPath;&lt;br&gt;			}&lt;br&gt;			WorkbookSettings ws = new WorkbookSettings();&lt;br&gt;			ws.setLocale(new Locale(&quot;en&quot;, &quot;EN&quot;));&lt;br&gt;&lt;br&gt;			Workbook workbook = Workbook.getWorkbook(new File(pFileName), ws);&lt;br&gt;			Sheet s = workbook.getSheet(0);&lt;br&gt;			int start = 0;&lt;br&gt;&lt;br&gt;			while ((start = searchRow(s, start + 2)) != -1) {&lt;br&gt;				createNewWorkBook(s, start, pSiDateTime, outPath,intIndex,new File(pFileName));&lt;br&gt;			}&lt;br&gt;			workbook.close();&lt;br&gt;		} catch (Exception e) {&lt;br&gt;			throw new RuntimeException(e);&lt;br&gt;		}&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	private String getCurrentDate(String format, Date d) {&lt;br&gt;		Format formatter = new SimpleDateFormat(format);&lt;br&gt;		return formatter.format(d);&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	private String getFileName(String ShipperCode, String siDateTime,&lt;br&gt;			int intIndex, File fileName2) {&lt;br&gt;&lt;br&gt;			String fileName = &quot;IP026.PN_%Parent File%_%Shipper Short Code%_%SI_DATETIME(Bo variable)%.xls&quot;;&lt;br&gt;			String strInputFileName = fileName2.getName();&lt;br&gt;			String strDay = new String(strInputFileName.substring(strInputFileName.indexOf(&quot;days&quot;)-2,strInputFileName.indexOf(&quot;days&quot;)));&lt;br&gt;			String strParentFile = strInputFileName.substring(0,strInputFileName.indexOf(&quot;queries&quot;));&lt;br&gt;			if(strDay.equalsIgnoreCase(&quot;56&quot;)){&lt;br&gt;			fileName = fileName.replace(&quot;IP026.PN_%&quot;,&quot;IP027.PN_%&quot;);&lt;br&gt;			}else if(strDay.equalsIgnoreCase(&quot;70&quot;)){&lt;br&gt;			fileName = fileName.replace(&quot;IP026.PN_%&quot;,&quot;IP028.PN_%&quot;);&lt;br&gt;			}&lt;br&gt;			fileName = fileName.replace(&quot;%Parent File%&quot;, strParentFile);&lt;br&gt;			fileName = fileName.replace(&quot;%Shipper Short Code%&quot;, ShipperCode);&lt;br&gt;			Calendar cal = Calendar.getInstance();&lt;br&gt;			cal.add(Calendar.MONTH, -0);&lt;br&gt;			Date d = cal.getTime();&lt;br&gt;			String date1=getCurrentDate(&quot;yyyy-MM-dd&quot;,d);&lt;br&gt;			String time1= getCurrentDate(&quot;hh-mm-ss&quot;,d);&lt;br&gt;			fileName = fileName.replace(&quot;%SI_DATETIME(Bo variable)%&quot;,date1+&quot;-&quot;+time1);&lt;br&gt;			fileName = fileName.replace(&quot;.xls&quot;,&quot;.xls&quot;);&lt;br&gt;			return fileName;&lt;br&gt;			}&lt;br&gt;	&lt;br&gt;@SuppressWarnings(&quot;unchecked&quot;)&lt;br&gt;public void sendEmail(String filename,String subject, String shipperCode) throws SQLException {&lt;br&gt;		&lt;br&gt;		String from = &quot;xoserve.ipwdevtandtest@xoserve.com&quot;;&lt;br&gt;	&lt;br&gt;		String bodyText = &quot;This is a important message with attachment&quot;+&quot;n&quot;+&quot;Please do not reply to this mail as it is a system generated mail&quot;+&quot;n&quot;+&quot;Incase of attachment problems please contact BO admin at rajendra.chandrashekar@tcs.com&quot;;&lt;br&gt;		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());&lt;br&gt;			    String serverName = this.readProperty(&quot;SERVERNAME&quot;);&lt;br&gt;			    int port =Integer.valueOf( this.readProperty(&quot;PORT&quot;));&lt;br&gt;			    String user = this .readProperty(&quot;USER&quot;);&lt;br&gt;			    String password = this.readProperty(&quot;PASSWORD&quot;);&lt;br&gt;			    String SID = this.readProperty(&quot;SID&quot;);&lt;br&gt;			    String URL = &quot;jdbc:oracle:thin:@&quot; + serverName + &quot;:&quot; + port + &quot;:&quot; + SID;&lt;br&gt;			    Connection conn = DriverManager.getConnection(URL, user, password);&lt;br&gt;			   &lt;br&gt;			    PreparedStatement stat = conn.prepareStatement(&quot;SELECT EMAIL_ID FROM SHIPPER_EMAIL WHERE SHIPPER_SHORT_CODE =?&quot;);&lt;br&gt;			    stat.setString(1, shipperCode);&lt;br&gt;			    ResultSet rs = stat.executeQuery();&lt;br&gt;			&lt;br&gt;			&lt;br&gt;&lt;br&gt;&lt;br&gt;		Properties properties = new Properties();&lt;br&gt;		properties.put(&quot;mail.smtp.host&quot;, &quot;10.140.84.69&quot;);&lt;br&gt;		properties.put(&quot;mail.smtp.port&quot;, &quot;25&quot;);&lt;br&gt;		Session session = Session.getInstance( properties, null);&lt;br&gt;		&lt;br&gt;		try {&lt;br&gt;			ArrayList tolist=new ArrayList();&lt;br&gt;			while(rs.next()){&lt;br&gt;			tolist.add(rs.getString(1));&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			//String[] mail = (String[]) tolist.toArray();&lt;br&gt;&lt;br&gt;			MimeMessage message = new MimeMessage(session);&lt;br&gt;			message.setFrom(new InternetAddress(from));&lt;br&gt;&lt;br&gt;			InternetAddress[] addressTo = new InternetAddress[tolist.size()];&lt;br&gt;			for (int i = 0; i &lt; tolist.size(); i++) {&lt;br&gt;			addressTo[i] = new InternetAddress((String) tolist.get(i));&lt;br&gt;			}&lt;br&gt;			message.setRecipients(Message.RecipientType.TO, addressTo);&lt;br&gt;			message.setSubject(subject);&lt;br&gt;			message.setSentDate(new Date());&lt;br&gt;&lt;br&gt;			//&lt;br&gt;			// Set the email message text.&lt;br&gt;			//&lt;br&gt;			MimeBodyPart messagePart = new MimeBodyPart();&lt;br&gt;			messagePart.setText(bodyText);&lt;br&gt;&lt;br&gt;			//&lt;br&gt;			// Set the email attachment file&lt;br&gt;			//&lt;br&gt;			MimeBodyPart attachmentPart = new MimeBodyPart();&lt;br&gt;			FileDataSource fileDataSource = new FileDataSource(filename) {&lt;br&gt;				@Override&lt;br&gt;				public String getContentType() {&lt;br&gt;					return &quot;application/octet-stream&quot;;&lt;br&gt;				}&lt;br&gt;			};&lt;br&gt;			attachmentPart.setDataHandler(new DataHandler(fileDataSource));&lt;br&gt;			attachmentPart.setFileName(subject);&lt;br&gt;&lt;br&gt;			Multipart multipart = new MimeMultipart();&lt;br&gt;			multipart.addBodyPart(messagePart);&lt;br&gt;			multipart.addBodyPart(attachmentPart);&lt;br&gt;&lt;br&gt;			message.setContent(multipart);&lt;br&gt;&lt;br&gt;			Transport.send(message);&lt;br&gt;			this.createlogfile(&quot;sent file &quot;+subject+&quot; to &quot;+ tolist +&quot; from &quot;+from+&quot; at &quot;+this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime())+&quot;n&quot;);&lt;br&gt;			&lt;br&gt;			&lt;br&gt;		}catch (MessagingException e) {&lt;br&gt;			e.printStackTrace();&lt;br&gt;		}&lt;br&gt;	&lt;br&gt;	}&lt;br&gt;    &lt;br&gt;	&lt;br&gt;}</description>
		<content:encoded><![CDATA[<p>package xl;</p>
<p>import java.io.BufferedInputStream;<br />import java.io.BufferedWriter;<br />import java.io.File;<br />import java.io.FileInputStream;<br />import java.io.FileNotFoundException;<br />import java.io.FileOutputStream;<br />import java.io.FileWriter;<br />import java.io.IOException;<br />import java.io.PrintStream;<br />import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.PreparedStatement;<br />import java.sql.ResultSet;<br />import java.sql.SQLException;<br />import java.text.Format;<br />import java.text.SimpleDateFormat;<br />import java.util.ArrayList;<br />import java.util.Calendar;<br />import java.util.Date;<br />import java.util.Locale;<br />import java.util.Properties;<br />import java.util.zip.ZipEntry;<br />import java.util.zip.ZipOutputStream;</p>
<p>import javax.activation.DataHandler;<br />import javax.activation.FileDataSource;<br />import javax.mail.Message;<br />import javax.mail.MessagingException;<br />import javax.mail.Multipart;<br />import javax.mail.Session;<br />import javax.mail.Transport;<br />import javax.mail.internet.InternetAddress;<br />import javax.mail.internet.MimeBodyPart;<br />import javax.mail.internet.MimeMessage;<br />import javax.mail.internet.MimeMultipart;</p>
<p>import jxl.Cell;<br />import jxl.CellType;<br />import jxl.DateCell;<br />import jxl.LabelCell;<br />import jxl.Sheet;<br />import jxl.Workbook;<br />import jxl.WorkbookSettings;<br />import jxl.write.WritableCellFormat;</p>
<p>import org.apache.poi.hssf.usermodel.HSSFCellStyle;<br />import org.apache.poi.hssf.usermodel.HSSFDataFormat;<br />import org.apache.poi.hssf.usermodel.HSSFFont;<br />import org.apache.poi.hssf.usermodel.HSSFRow;<br />import org.apache.poi.hssf.usermodel.HSSFSheet;<br />import org.apache.poi.hssf.usermodel.HSSFWorkbook;<br />import org.apache.poi.hssf.util.HSSFColor;</p>
<p>public class ReadWriteSheet {</p>
<p>	public void createlogfile(String message){</p>
<p>		 try {<br />				 String name=this.readProperty(&#8220;OUTPUT_FOLDER&#8221;)+&#8221;//&#8221;+this.getCurrentDate(&#8220;MMMyyyy&#8221;, Calendar.getInstance().getTime())+&#8221;.log&#8221;;<br />				 FileWriter fstream = new FileWriter(name,true);<br />			        BufferedWriter out1 = new BufferedWriter(fstream);<br />			        out1.write(message);<br />			        out1.newLine();<br />			        //Close the output stream<br />			        out1.close();</p>
<p>			 }<br />			 catch(Exception e){//Catch exception if any<br />			      System.err.println(&#8220;Error: &#8221; + e.getMessage());<br />			    }<br />			  }</p>
<p>		public String readProperty(String strPropName)</p>
<p>		{</p>
<p>			// create an instance of properties class</p>
<p>			String strValue = &#8220;&#8221;;</p>
<p>			Properties props = new Properties();</p>
<p>			// try retrieve data from file</p>
<p>			try {</p>
<p>				File f = new File(System.getProperty(&#8220;user.dir&#8221;) + &#8220;\xl\&#8221;<br />						+ &#8220;message.properties&#8221;);<br />				props.load(new FileInputStream(f));</p>
<p>				strValue = props.getProperty(strPropName);</p>
<p>			}</p>
<p>			// catch exception in case properties file does not exist</p>
<p>			catch (IOException e)</p>
<p>			{</p>
<p>				e.printStackTrace();</p>
<p>			}</p>
<p>			return strValue;</p>
<p>		}</p>
<p>	private static int searchRow(Sheet s, int from) {<br />		try {<br />			for (int i = from; i &lt; s.getRows(); i++) {<br />				Cell c = s.getCell(0, i);<br />				if (c.getType() == CellType.LABEL) {<br />					LabelCell l = (LabelCell) c;<br />					if (&#8220;Supply Point Id&#8221;.equals(l.getString()))<br />						return i &#8211; 1;<br />				}<br />			}<br />		} catch (Exception e) {<br />			e.printStackTrace(new PrintStream(System.out));<br />		}<br />		return -1;<br />	}</p>
<p>	public void createZipFile(File f, ZipOutputStream out) {</p>
<p>		final int BUFFER = 2048;</p>
<p>		try {</p>
<p>			BufferedInputStream origin = null;<br />			byte data[] = new byte[BUFFER];</p>
<p>			File [] files = f.listFiles();<br />			for (int i = 0; i &lt; files.length; i++) {<br />				if(files[i].isDirectory()){<br />					createZipFile(files[i], out);<br />					continue;<br />				}<br />				if(!files[i].toString().contains(&#8220;.xls&#8221;))<br />					continue;<br />				System.out.println(&#8220;Adding: &#8220;+files[i]);</p>
<p>				FileInputStream fi = new FileInputStream(files[i]);</p>
<p>				origin = new BufferedInputStream(fi, BUFFER);<br />				System.out.println(files[i].toString());</p>
<p>				ZipEntry entry = new ZipEntry(files[i].toString());</p>
<p>				out.putNextEntry(entry);</p>
<p>				int count;</p>
<p>				while ((count = origin.read(data, 0, BUFFER)) != -1) {<br />					System.out.println(data);<br />					System.out.println(count);<br />					out.write(data, 0, count);</p>
<p>				}</p>
<p>				origin.close();<br />				System.out.println(files[i]);<br />				this.createlogfile(&#8220;zipped the file &#8220;+files[i]+ &#8221; at&#8221; +this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime()));</p>
<p>			}</p>
<p>		} catch (Exception e) {</p>
<p>			e.printStackTrace();</p>
<p>		}</p>
<p>	}</p>
<p>	private void createNewWorkBook(Sheet pSrcSheet, int pStartRow,<br />			String pSiDateTime, String pOutPath, int intIndex, File fileName2) throws Exception {</p>
<p>		LabelCell l = (LabelCell) pSrcSheet.getCell(0, pStartRow);<br />		String ShipperCode = l.getString();<br />		String filename = getFileName(ShipperCode, pSiDateTime,intIndex,fileName2);</p>
<p>		//WorkbookSettings ws = new WorkbookSettings();<br />		//ws.setLocale(new Locale(&#8220;en&#8221;, &#8220;EN&#8221;));<br />		//WritableWorkbook workbook = Workbook.createWorkbook(new File(pOutPath,<br />		//		filename), ws);<br />		HSSFWorkbook wb          = new HSSFWorkbook();<br />		HSSFSheet sheet = wb.createSheet();<br />		FileOutputStream fileOut = new FileOutputStream(new File(pOutPath,filename));<br />		HSSFCellStyle cs = wb.createCellStyle();<br />		HSSFCellStyle cs2 = wb.createCellStyle();<br />		HSSFFont f = wb.createFont();</p>
<p>		f.setColor( HSSFColor.BLACK.index );<br />		f.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);<br />		cs.setFont(f);<br />		cs2.setFont(f);<br />		cs2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);<br />		cs2.setFillForegroundColor(HSSFColor.CORNFLOWER_BLUE.index);<br />		//cs.setDataFormat(df.getFormat(&#8220;#,##0.0&#8243;));</p>
<p>		//WritableSheet dstSheet = workbook.createSheet(&#8220;Sheet1&#8243;, 0);<br />		int dstRow = 0, srcRow = pStartRow;</p>
<p>		while (true) {</p>
<p>			Cell c = pSrcSheet.getCell(0, srcRow);<br />			if (c.getType() == CellType.EMPTY) {<br />				break;<br />			}<br />			//copyRow(pSrcSheet, srcRow, dstSheet, dstRow);<br />			copyRow2(pSrcSheet, srcRow, sheet, dstRow,cs);<br />			srcRow++;<br />			dstRow++;<br />		}<br />		HSSFRow row2 = sheet.getRow(1);<br />		int abc = row2.getLastCellNum();<br />		for(int i = 0; i&lt;abc; i++){<br />			row2.getCell(i).setCellStyle(cs2);	<br />		}<br />		wb.write(fileOut);<br />		fileOut.close();<br />		String strOutFolderName = this.readProperty(&#8220;OUTPUT_FOLDER&#8221;);<br />		this.createlogfile(&#8220;created file &#8220;+filename+&#8221;at &#8220;+this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime()));<br />		this.sendEmail(strOutFolderName+&#8221;\&#8221;+filename,filename,ShipperCode);<br />		//workbook.write();<br />		//workbook.close();<br />	}</p>
<p>	@SuppressWarnings(&#8220;deprecation&#8221;)<br />	private static void copyRow2(Sheet srcSheet, int startRow,<br />			 HSSFSheet dstSheet, int dstRow, HSSFCellStyle cs) throws Exception {<br />		 HSSFRow row     = dstSheet.createRow((short)dstRow);<br />		 HSSFRow row1 = dstSheet.getRow(0);</p>
<p>		 int count=-1;<br />		 	Cell[] cells = srcSheet.getRow(startRow);</p>
<p>			for (Cell c : cells) {<br />				if (c.getType() == CellType.LABEL) {<br />					LabelCell l = (LabelCell) c;<br />					@SuppressWarnings(&#8220;unused&#8221;)<br />					WritableCellFormat f = new WritableCellFormat(c.getCellFormat());<br />					//dstSheet.addCell(new Label(c.getColumn(), dstRow,<br />					//		l.getString(), f));<br />					row.createCell(++count).setCellValue(l.getContents());</p>
<p>				}<br />				if (c.getType() == CellType.DATE) {<br />					DateCell dt = (DateCell) c;<br />					@SuppressWarnings(&#8220;unused&#8221;)<br />					WritableCellFormat f = new WritableCellFormat(c.getCellFormat());<br />//					dstSheet.addCell(new DateTime(c.getColumn(), dstRow, dt<br />//							.getDate(), f));<br />					row.createCell(++count).setCellValue(dt.getDate());<br />				}<br />			}<br />			row1.getCell(0).setCellStyle(cs);</p>
<p>	}<br />	public static void main(String[] args) throws IOException {<br />		ReadWriteSheet rws = new ReadWriteSheet();<br />		//String files1[] = { &#8220;Supply point ids.xls&#8221; };<br />		try {<br />			rws.createlogfile(&#8220;started process at &#8220;+ rws.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime()));<br />			String strInpFolderName = rws.readProperty(&#8220;INPUT_FOLDER&#8221;);<br />			String strOutFolderName = rws.readProperty(&#8220;OUTPUT_FOLDER&#8221;);<br />			File f = new File(strInpFolderName); // here pass the directory</p>
<p>			File files[] = f.listFiles(); // this will give you a list of excel<br />			// files in the directory<br />			Calendar cal = Calendar.getInstance();<br />			Date d = cal.getTime();<br />			String fileName = rws.getCurrentDate(&#8220;ddMMyyyy&#8221;, d)+&#8221;.zip&#8221;;<br />			FileOutputStream dest = null;<br />			try {<br />				dest = new FileOutputStream(strOutFolderName<br />						+ &#8220;\&#8221; + fileName);<br />			} catch (FileNotFoundException e) {<br />				// TODO Auto-generated catch block<br />				e.printStackTrace();<br />			}</p>
<p>			ZipOutputStream out = new ZipOutputStream(dest);<br />			for (int i = 0; i &lt; files.length; i++) {<br />				if(!files[i].toString().contains(&#8220;.&#8221;))<br />					continue;<br />				//for (String file : files)<br />				rws.processWorkBook(files[i].toString(), &#8220;20090601&#8243;, strOutFolderName,i);<br />			}<br />			rws.createZipFile(f, out);<br />			out.close();<br />			rws.deleteExcelFiles(f);</p>
<p>		} catch (RuntimeException ex) {<br />			ex.printStackTrace(new PrintStream(System.out));<br />		}<br />	}</p>
<p>	private void deleteExcelFiles(File f) {<br />		File [] filelist = f.listFiles();<br />		for(int i=0;i&lt;filelist.length;i++){<br />			if(filelist[i].isDirectory()){<br />				deleteExcelFiles(filelist[i]);<br />				continue;<br />			}<br />			if(!filelist[i].toString().contains(&#8220;.xls&#8221;))<br />				continue;<br />			filelist[i].delete();<br />			this.createlogfile(&#8220;deleted files&#8221; + filelist[i] + &#8220;at&#8221;+this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime())+&#8221;n&#8221;);</p>
<p>		}</p>
<p>	}</p>
<p>	/**<br />	 * Creates multiple excel files based on shipper code in input file<br />	 * <br />	 * @param pFileName<br />	 *            input file name<br />	 * @param pSiDateTime<br />	 *            BO variable<br />	 * @param pOutPath<br />	 *            Output directory name to store generated files<br />	 * @param i <br />	 */<br />	public void processWorkBook(String pFileName, String pSiDateTime,<br />			String pOutPath, int intIndex) {<br />		try {<br />			String outPath = &#8220;.&#8221;;<br />			if (pOutPath != null) {<br />				outPath = pOutPath;<br />			}<br />			WorkbookSettings ws = new WorkbookSettings();<br />			ws.setLocale(new Locale(&#8220;en&#8221;, &#8220;EN&#8221;));</p>
<p>			Workbook workbook = Workbook.getWorkbook(new File(pFileName), ws);<br />			Sheet s = workbook.getSheet(0);<br />			int start = 0;</p>
<p>			while ((start = searchRow(s, start + 2)) != -1) {<br />				createNewWorkBook(s, start, pSiDateTime, outPath,intIndex,new File(pFileName));<br />			}<br />			workbook.close();<br />		} catch (Exception e) {<br />			throw new RuntimeException(e);<br />		}<br />	}</p>
<p>	private String getCurrentDate(String format, Date d) {<br />		Format formatter = new SimpleDateFormat(format);<br />		return formatter.format(d);<br />	}</p>
<p>	private String getFileName(String ShipperCode, String siDateTime,<br />			int intIndex, File fileName2) {</p>
<p>			String fileName = &#8220;IP026.PN_%Parent File%_%Shipper Short Code%_%SI_DATETIME(Bo variable)%.xls&#8221;;<br />			String strInputFileName = fileName2.getName();<br />			String strDay = new String(strInputFileName.substring(strInputFileName.indexOf(&#8220;days&#8221;)-2,strInputFileName.indexOf(&#8220;days&#8221;)));<br />			String strParentFile = strInputFileName.substring(0,strInputFileName.indexOf(&#8220;queries&#8221;));<br />			if(strDay.equalsIgnoreCase(&#8220;56&#8243;)){<br />			fileName = fileName.replace(&#8220;IP026.PN_%&#8221;,&#8221;IP027.PN_%&#8221;);<br />			}else if(strDay.equalsIgnoreCase(&#8220;70&#8243;)){<br />			fileName = fileName.replace(&#8220;IP026.PN_%&#8221;,&#8221;IP028.PN_%&#8221;);<br />			}<br />			fileName = fileName.replace(&#8220;%Parent File%&#8221;, strParentFile);<br />			fileName = fileName.replace(&#8220;%Shipper Short Code%&#8221;, ShipperCode);<br />			Calendar cal = Calendar.getInstance();<br />			cal.add(Calendar.MONTH, -0);<br />			Date d = cal.getTime();<br />			String date1=getCurrentDate(&#8220;yyyy-MM-dd&#8221;,d);<br />			String time1= getCurrentDate(&#8220;hh-mm-ss&#8221;,d);<br />			fileName = fileName.replace(&#8220;%SI_DATETIME(Bo variable)%&#8221;,date1+&#8221;-&#8221;+time1);<br />			fileName = fileName.replace(&#8220;.xls&#8221;,&#8221;.xls&#8221;);<br />			return fileName;<br />			}</p>
<p>@SuppressWarnings(&#8220;unchecked&#8221;)<br />public void sendEmail(String filename,String subject, String shipperCode) throws SQLException {</p>
<p>		String from = &#8220;xoserve.ipwdevtandtest@xoserve.com&#8221;;</p>
<p>		String bodyText = &#8220;This is a important message with attachment&#8221;+&#8221;n&#8221;+&#8221;Please do not reply to this mail as it is a system generated mail&#8221;+&#8221;n&#8221;+&#8221;Incase of attachment problems please contact BO admin at <a href="mailto:rajendra.chandrashekar@tcs.com">rajendra.chandrashekar@tcs.com</a>&#8220;;<br />		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());<br />			    String serverName = this.readProperty(&#8220;SERVERNAME&#8221;);<br />			    int port =Integer.valueOf( this.readProperty(&#8220;PORT&#8221;));<br />			    String user = this .readProperty(&#8220;USER&#8221;);<br />			    String password = this.readProperty(&#8220;PASSWORD&#8221;);<br />			    String SID = this.readProperty(&#8220;SID&#8221;);<br />			    String URL = &#8220;jdbc:oracle:thin:@&#8221; + serverName + &#8220;:&#8221; + port + &#8220;:&#8221; + SID;<br />			    Connection conn = DriverManager.getConnection(URL, user, password);</p>
<p>			    PreparedStatement stat = conn.prepareStatement(&#8220;SELECT EMAIL_ID FROM SHIPPER_EMAIL WHERE SHIPPER_SHORT_CODE =?&#8221;);<br />			    stat.setString(1, shipperCode);<br />			    ResultSet rs = stat.executeQuery();</p>
<p>		Properties properties = new Properties();<br />		properties.put(&#8220;mail.smtp.host&#8221;, &#8220;10.140.84.69&#8243;);<br />		properties.put(&#8220;mail.smtp.port&#8221;, &#8220;25&#8243;);<br />		Session session = Session.getInstance( properties, null);</p>
<p>		try {<br />			ArrayList tolist=new ArrayList();<br />			while(rs.next()){<br />			tolist.add(rs.getString(1));<br />			}</p>
<p>			//String[] mail = (String[]) tolist.toArray();</p>
<p>			MimeMessage message = new MimeMessage(session);<br />			message.setFrom(new InternetAddress(from));</p>
<p>			InternetAddress[] addressTo = new InternetAddress[tolist.size()];<br />			for (int i = 0; i &lt; tolist.size(); i++) {<br />			addressTo[i] = new InternetAddress((String) tolist.get(i));<br />			}<br />			message.setRecipients(Message.RecipientType.TO, addressTo);<br />			message.setSubject(subject);<br />			message.setSentDate(new Date());</p>
<p>			//<br />			// Set the email message text.<br />			//<br />			MimeBodyPart messagePart = new MimeBodyPart();<br />			messagePart.setText(bodyText);</p>
<p>			//<br />			// Set the email attachment file<br />			//<br />			MimeBodyPart attachmentPart = new MimeBodyPart();<br />			FileDataSource fileDataSource = new FileDataSource(filename) {<br />				@Override<br />				public String getContentType() {<br />					return &#8220;application/octet-stream&#8221;;<br />				}<br />			};<br />			attachmentPart.setDataHandler(new DataHandler(fileDataSource));<br />			attachmentPart.setFileName(subject);</p>
<p>			Multipart multipart = new MimeMultipart();<br />			multipart.addBodyPart(messagePart);<br />			multipart.addBodyPart(attachmentPart);</p>
<p>			message.setContent(multipart);</p>
<p>			Transport.send(message);<br />			this.createlogfile(&#8220;sent file &#8220;+subject+&#8221; to &#8220;+ tolist +&#8221; from &#8220;+from+&#8221; at &#8220;+this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime())+&#8221;n&#8221;);</p>
<p>		}catch (MessagingException e) {<br />			e.printStackTrace();<br />		}</p>
<p>	}</p>
<p>}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: vaishaksuresh</title>
		<link>http://blog.vaishaksuresh.com/2009/04/15/terminator-meets-kuch-kuch-hota-hai/comment-page-1/#comment-111</link>
		<dc:creator>vaishaksuresh</dc:creator>
		<pubDate>Tue, 07 Jul 2009 21:53:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vaishaksuresh.com/?p=75#comment-111</guid>
		<description>package com.xl;&lt;br&gt;&lt;br&gt;import java.io.BufferedInputStream;&lt;br&gt;import java.io.BufferedWriter;&lt;br&gt;import java.io.Closeable;&lt;br&gt;import java.io.File;&lt;br&gt;import java.io.FileInputStream;&lt;br&gt;import java.io.FileNotFoundException;&lt;br&gt;import java.io.FileOutputStream;&lt;br&gt;import java.io.FileWriter;&lt;br&gt;import java.io.IOException;&lt;br&gt;import java.io.InputStream;&lt;br&gt;import java.io.PrintStream;&lt;br&gt;import java.sql.Connection;&lt;br&gt;import java.sql.DriverManager;&lt;br&gt;import java.sql.PreparedStatement;&lt;br&gt;import java.sql.ResultSet;&lt;br&gt;import java.sql.SQLException;&lt;br&gt;import java.text.Format;&lt;br&gt;import java.text.SimpleDateFormat;&lt;br&gt;import java.util.ArrayList;&lt;br&gt;import java.util.Calendar;&lt;br&gt;import java.util.Date;&lt;br&gt;import java.util.Locale;&lt;br&gt;import java.util.Properties;&lt;br&gt;import java.util.zip.ZipEntry;&lt;br&gt;import java.util.zip.ZipOutputStream;&lt;br&gt;&lt;br&gt;import javax.activation.DataHandler;&lt;br&gt;import javax.activation.FileDataSource;&lt;br&gt;import javax.mail.Message;&lt;br&gt;import javax.mail.MessagingException;&lt;br&gt;import javax.mail.Multipart;&lt;br&gt;import javax.mail.Session;&lt;br&gt;import javax.mail.Transport;&lt;br&gt;import javax.mail.internet.InternetAddress;&lt;br&gt;import javax.mail.internet.MimeBodyPart;&lt;br&gt;import javax.mail.internet.MimeMessage;&lt;br&gt;import javax.mail.internet.MimeMultipart;&lt;br&gt;&lt;br&gt;import jxl.Cell;&lt;br&gt;import jxl.CellType;&lt;br&gt;import jxl.DateCell;&lt;br&gt;import jxl.LabelCell;&lt;br&gt;import jxl.Workbook;&lt;br&gt;import jxl.WorkbookSettings;&lt;br&gt;import jxl.read.biff.BiffException;&lt;br&gt;import jxl.write.DateTime;&lt;br&gt;import jxl.write.Label;&lt;br&gt;import jxl.write.WritableCellFormat;&lt;br&gt;import jxl.write.WritableSheet;&lt;br&gt;import jxl.write.WritableWorkbook;&lt;br&gt;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFCell;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFSheet;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFWorkbook;&lt;br&gt;import org.apache.poi.poifs.filesystem.POIFSFileSystem;&lt;br&gt;&lt;br&gt;public class ReadWriteSheet {&lt;br&gt;&lt;br&gt;	public ReadWriteSheet(InputStream input) {&lt;br&gt;		// TODO Auto-generated constructor stub&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	public void createlogfile(String message) {&lt;br&gt;&lt;br&gt;		try {&lt;br&gt;			String name = this.readProperty(&quot;OUTPUT_FOLDER&quot;)&lt;br&gt;			+ &quot;//&quot;&lt;br&gt;			+ this.getCurrentDate(&quot;MMMyyyy&quot;, Calendar.getInstance()&lt;br&gt;					.getTime()) + &quot;.log&quot;;&lt;br&gt;			FileWriter fstream = new FileWriter(name, true);&lt;br&gt;			BufferedWriter out1 = new BufferedWriter(fstream);&lt;br&gt;			out1.write(message);&lt;br&gt;			out1.newLine();&lt;br&gt;			// Close the output stream&lt;br&gt;			out1.close();&lt;br&gt;&lt;br&gt;		} catch (Exception e) {// Catch exception if any&lt;br&gt;			System.err.println(&quot;Error: &quot; + e.getMessage());&lt;br&gt;		}&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	public String readProperty(String strPropName)&lt;br&gt;&lt;br&gt;	{&lt;br&gt;&lt;br&gt;		// create an instance of properties class&lt;br&gt;&lt;br&gt;		String strValue = &quot;&quot;;&lt;br&gt;&lt;br&gt;		Properties props = new Properties();&lt;br&gt;&lt;br&gt;		// try retrieve data from file&lt;br&gt;&lt;br&gt;		try {&lt;br&gt;&lt;br&gt;			File f = new File(System.getProperty(&quot;user.dir&quot;) + &quot;\xl\&quot;&lt;br&gt;					+ &quot;message.properties&quot;);&lt;br&gt;			props.load(new FileInputStream(f));&lt;br&gt;&lt;br&gt;			strValue = props.getProperty(strPropName);&lt;br&gt;&lt;br&gt;		}&lt;br&gt;&lt;br&gt;		// catch exception in case properties file does not exist&lt;br&gt;&lt;br&gt;		catch (IOException e)&lt;br&gt;&lt;br&gt;		{&lt;br&gt;&lt;br&gt;			e.printStackTrace();&lt;br&gt;&lt;br&gt;		}&lt;br&gt;&lt;br&gt;		return strValue;&lt;br&gt;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	public void createZipFile(File f, ZipOutputStream out) {&lt;br&gt;&lt;br&gt;		final int BUFFER = 2048;&lt;br&gt;&lt;br&gt;		try {&lt;br&gt;&lt;br&gt;			BufferedInputStream origin = null;&lt;br&gt;			byte data[] = new byte[BUFFER];&lt;br&gt;&lt;br&gt;			File[] files = f.listFiles();&lt;br&gt;			for (int i = 0; i &lt; files.length; i++) {&lt;br&gt;				if (files[i].isDirectory()) {&lt;br&gt;					createZipFile(files[i], out);&lt;br&gt;					continue;&lt;br&gt;				}&lt;br&gt;				if (!files[i].toString().contains(&quot;.xls&quot;))&lt;br&gt;					continue;&lt;br&gt;				System.out.println(&quot;Adding: &quot; + files[i]);&lt;br&gt;&lt;br&gt;				FileInputStream fi = new FileInputStream(files[i]);&lt;br&gt;&lt;br&gt;				origin = new BufferedInputStream(fi, BUFFER);&lt;br&gt;				System.out.println(files[i].toString());&lt;br&gt;&lt;br&gt;				ZipEntry entry = new ZipEntry(files[i].toString());&lt;br&gt;&lt;br&gt;				out.putNextEntry(entry);&lt;br&gt;&lt;br&gt;				int count;&lt;br&gt;&lt;br&gt;				while ((count = origin.read(data, 0, BUFFER)) != -1) {&lt;br&gt;					System.out.println(data);&lt;br&gt;					System.out.println(count);&lt;br&gt;					out.write(data, 0, count);&lt;br&gt;&lt;br&gt;				}&lt;br&gt;&lt;br&gt;				origin.close();&lt;br&gt;				System.out.println(files[i]);&lt;br&gt;				this.createlogfile(&quot;zipped the file &quot;&lt;br&gt;						+ files[i]&lt;br&gt;						        + &quot; at&quot;&lt;br&gt;						        + this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar&lt;br&gt;						        		.getInstance().getTime()));&lt;br&gt;&lt;br&gt;			}&lt;br&gt;&lt;br&gt;		} catch (Exception e) {&lt;br&gt;&lt;br&gt;			e.printStackTrace();&lt;br&gt;&lt;br&gt;		}&lt;br&gt;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	private static int searchRow(HSSFSheet s, int from) {&lt;br&gt;		try {&lt;br&gt;			for (int i = from; i &lt; s.getPhysicalNumberOfRows(); i++) {&lt;br&gt;				HSSFCell c = (HSSFCell) s.getRow(pStartRow).getCell((short) i);&lt;br&gt;				if (c.getType() == CellType.LABEL) {&lt;br&gt;					LabelCell l = (LabelCell) c;&lt;br&gt;					if (&quot;Supply Point Id&quot;.equals(l.getString()))&lt;br&gt;						return i - 1;&lt;br&gt;				}&lt;br&gt;			}&lt;br&gt;		} catch (Exception e) {&lt;br&gt;			e.printStackTrace(new PrintStream(System.out));&lt;br&gt;		}&lt;br&gt;		return -1;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	private void createNewWorkBook(HSSFSheet s, int pStartRow,&lt;br&gt;			String pSiDateTime, String pOutPath, int intIndex, File pFileName)&lt;br&gt;	throws Exception {&lt;br&gt;		//LabelCell l = (LabelCell) s.getCellComment(0, pStartRow);&lt;br&gt;		HSSFCell l = (HSSFCell) s.getRow(pStartRow).getCell((short) 0);&lt;br&gt;		//String ShipperCode = l.getString();&lt;br&gt;		String ShipperCode = l.getStringCellValue();&lt;br&gt;		String filename = getFileName(ShipperCode, pSiDateTime, intIndex,&lt;br&gt;				pFileName);&lt;br&gt;&lt;br&gt;		WorkbookSettings ws = new WorkbookSettings();&lt;br&gt;		ws.setLocale(new Locale(&quot;en&quot;, &quot;EN&quot;));&lt;br&gt;		WritableWorkbook workbook = Workbook.createWorkbook(new File(pOutPath,&lt;br&gt;				filename), ws);&lt;br&gt;		WritableSheet dstSheet = workbook.createSheet(&quot;Sheet1&quot;, 0);&lt;br&gt;		int dstRow = 0, srcRow = pStartRow;&lt;br&gt;&lt;br&gt;		while (true) {&lt;br&gt;			//Cell c = (Cell) s.getCellComment(0, srcRow);&lt;br&gt;			HSSFCell c = (HSSFCell) s.getRow(srcRow).getCell((short) 0);&lt;br&gt;			if (c.getStringCellValue()==CellType.EMPTY.toString()) {&lt;br&gt;				break;&lt;br&gt;			}&lt;br&gt;			copyRow(s, srcRow, dstSheet, dstRow);&lt;br&gt;			srcRow++;&lt;br&gt;			dstRow++;&lt;br&gt;		}&lt;br&gt;		workbook.write();&lt;br&gt;		workbook.close();&lt;br&gt;		String strOutFolderName = this.readProperty(&quot;OUTPUT_FOLDER&quot;);&lt;br&gt;		// this.displayFromExcel(strOutFolderName+&quot;\&quot;+filename);&lt;br&gt;		// String strOutFolderName = this.readProperty(&quot;OUTPUT_FOLDER&quot;);&lt;br&gt;		this.createlogfile(&quot;created file &quot;&lt;br&gt;				+ filename&lt;br&gt;				+ &quot;at &quot;&lt;br&gt;				+ this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar&lt;br&gt;						.getInstance().getTime()));&lt;br&gt;		this.sendEmail(strOutFolderName + &quot;\&quot; + filename, filename,&lt;br&gt;				ShipperCode);&lt;br&gt;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	private static void copyRow(HSSFSheet srcSheet, int startRow,&lt;br&gt;			WritableSheet dstSheet, int dstRow) throws Exception {&lt;br&gt;		//Cell[] cells = srcSheet.getRow(startRow).getCell(dstRow);&lt;br&gt;		HSSFCell[] cells;&lt;br&gt;		for(int i=0;i&lt;srcSheet.getRow(startRow).getPhysicalNumberOfCells();i++){&lt;br&gt;			cells[i] = srcSheet.getRow(startRow).getCell((short) i);&lt;br&gt;		}&lt;br&gt;		for (HSSFCell c : cells) {&lt;br&gt;			if (c.getStringCellValue()==CellType.LABEL.toString()) {&lt;br&gt;				LabelCell l = (LabelCell) c;&lt;br&gt;&lt;br&gt;				WritableCellFormat f = new WritableCellFormat(c.getCellFormat());&lt;br&gt;				dstSheet.addCell(new Label(c.getColumn(), dstRow,&lt;br&gt;						l.getString(), f));&lt;br&gt;			}&lt;br&gt;			if (c.getStringCellValue()==CellType.DATE.toString()) {&lt;br&gt;				DateCell dt = (DateCell) c;&lt;br&gt;				WritableCellFormat f = new WritableCellFormat(c.getCellFormat());&lt;br&gt;				dstSheet.addCell(new DateTime(c.getColumn(), dstRow, dt&lt;br&gt;						.getDate(), f));&lt;br&gt;			}&lt;br&gt;		}&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	public static void main(String[] args) throws IOException {&lt;br&gt;		ReadWriteSheet rws = new ReadWriteSheet(null);&lt;br&gt;&lt;br&gt;		try {&lt;br&gt;			rws.createlogfile(&quot;started process at &quot;&lt;br&gt;					+ rws.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar&lt;br&gt;							.getInstance().getTime()));&lt;br&gt;			String strInpFolderName = rws.readProperty(&quot;INPUT_FOLDER&quot;);&lt;br&gt;			String strOutFolderName = rws.readProperty(&quot;OUTPUT_FOLDER&quot;);&lt;br&gt;			File f = new File(strInpFolderName); // here pass the directory&lt;br&gt;&lt;br&gt;			File files[] = f.listFiles(); // this will give you a list of&lt;br&gt;			// excel&lt;br&gt;			// files in the directory&lt;br&gt;			Calendar cal = Calendar.getInstance();&lt;br&gt;			Date d = cal.getTime();&lt;br&gt;			String fileName = rws.getCurrentDate(&quot;ddMMyyyy&quot;, d) + &quot;.zip&quot;;&lt;br&gt;			FileOutputStream dest = null;&lt;br&gt;			try {&lt;br&gt;				dest = new FileOutputStream(strOutFolderName + &quot;\&quot; + fileName);&lt;br&gt;			} catch (FileNotFoundException e) {&lt;br&gt;				// TODO Auto-generated catch block&lt;br&gt;				e.printStackTrace();&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			ZipOutputStream out = new ZipOutputStream(dest);&lt;br&gt;			for (int i = 0; i &lt; files.length; i++) {&lt;br&gt;				if (!files[i].toString().contains(&quot;.&quot;))&lt;br&gt;					continue;&lt;br&gt;				rws.processWorkBook(files[i], &quot;20090601&quot;, strOutFolderName, i);&lt;br&gt;&lt;br&gt;			}&lt;br&gt;			rws.createZipFile(f, out);&lt;br&gt;&lt;br&gt;			out.close();&lt;br&gt;			rws.deleteExcelFiles(f);&lt;br&gt;&lt;br&gt;		} catch (RuntimeException ex) {&lt;br&gt;			ex.printStackTrace(new PrintStream(System.out));&lt;br&gt;		}&lt;br&gt;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	private void deleteExcelFiles(File f) {&lt;br&gt;		File[] filelist = f.listFiles();&lt;br&gt;		for (int i = 0; i &lt; filelist.length; i++) {&lt;br&gt;			if (filelist[i].isDirectory()) {&lt;br&gt;				deleteExcelFiles(filelist[i]);&lt;br&gt;				continue;&lt;br&gt;			}&lt;br&gt;			if (!filelist[i].toString().contains(&quot;.xls&quot;))&lt;br&gt;				continue;&lt;br&gt;			filelist[i].delete();&lt;br&gt;			this.createlogfile(&quot;deleted files&quot;&lt;br&gt;					+ filelist[i]&lt;br&gt;					           + &quot;at&quot;&lt;br&gt;					           + this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar&lt;br&gt;					        		   .getInstance().getTime()) + &quot;n&quot;);&lt;br&gt;&lt;br&gt;		}&lt;br&gt;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	/**&lt;br&gt;	 * Creates multiple excel files based on shipper code in input file&lt;br&gt;	 * &lt;br&gt;	 * @param pFileName&lt;br&gt;	 *            input file name&lt;br&gt;	 * @param pSiDateTime&lt;br&gt;	 *            BO variable&lt;br&gt;	 * @param pOutPath&lt;br&gt;	 *            Output directory name to store generated files&lt;br&gt;	 */&lt;br&gt;	public void processWorkBook(File pFileName, String pSiDateTime,&lt;br&gt;			String pOutPath, int intIndex) {&lt;br&gt;		try {&lt;br&gt;			String outPath = &quot;.&quot;;&lt;br&gt;			if (pOutPath != null) {&lt;br&gt;				outPath = pOutPath;&lt;br&gt;			}&lt;br&gt;			/*&lt;br&gt;			 * WorkbookSettings ws = new WorkbookSettings(); ws.setLocale(new&lt;br&gt;			 * Locale(&quot;en&quot;, &quot;EN&quot;));&lt;br&gt;			 * &lt;br&gt;			 * Workbook workbook = Workbook.getWorkbook(new&lt;br&gt;			 * File(pFileName.getAbsolutePath()), ws); Sheet s =&lt;br&gt;			 * workbook.getSheet(0);&lt;br&gt;			 */&lt;br&gt;			InputStream inputStream = new FileInputStream(pFileName.getAbsolutePath());&lt;br&gt;			HSSFWorkbook workbook = new HSSFWorkbook();&lt;br&gt;			POIFSFileSystem fileSystem = new POIFSFileSystem(inputStream);&lt;br&gt;			HSSFWorkbook workBook = new HSSFWorkbook(fileSystem);&lt;br&gt;			HSSFSheet s = workBook.getSheetAt(0);&lt;br&gt;			&lt;br&gt;			int start = 0;&lt;br&gt;&lt;br&gt;			while ((start = searchRow(s, start + 2)) != -1) {&lt;br&gt;				createNewWorkBook(s, start, pSiDateTime, outPath, intIndex,&lt;br&gt;						pFileName);&lt;br&gt;			}&lt;br&gt;			((Closeable) workbook).close();&lt;br&gt;		} catch (BiffException e) {&lt;br&gt;			// TODO Auto-generated catch block&lt;br&gt;			e.printStackTrace();&lt;br&gt;		} catch (IOException e) {&lt;br&gt;			// TODO Auto-generated catch block&lt;br&gt;			e.printStackTrace();&lt;br&gt;		} catch (Exception e) {&lt;br&gt;			// TODO Auto-generated catch block&lt;br&gt;			e.printStackTrace();&lt;br&gt;		}&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	private String getCurrentDate(String format, Date d) {&lt;br&gt;		Format formatter = new SimpleDateFormat(format);&lt;br&gt;		return formatter.format(d);&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	private String getFileName(String ShipperCode, String siDateTime,&lt;br&gt;			int intIndex, File pFileName) {&lt;br&gt;&lt;br&gt;		String fileName = &quot;IP026.PN_%Parent File%_%Shipper Short Code%_%SI_DATETIME(Bo variable)%.xls&quot;;&lt;br&gt;		String strInputFileName = pFileName.getName();&lt;br&gt;		String strDay = new String(strInputFileName.substring(strInputFileName&lt;br&gt;				.indexOf(&quot;days&quot;) - 2, strInputFileName.indexOf(&quot;days&quot;)));&lt;br&gt;		String strParentFile = strInputFileName.substring(0, strInputFileName&lt;br&gt;				.indexOf(&quot;queries&quot;));&lt;br&gt;		if (strDay.equalsIgnoreCase(&quot;56&quot;)) {&lt;br&gt;			fileName = fileName.replace(&quot;IP026.PN_%&quot;, &quot;IP027.PN_%&quot;);&lt;br&gt;		} else if (strDay.equalsIgnoreCase(&quot;70&quot;)) {&lt;br&gt;			fileName = fileName.replace(&quot;IP026.PN_%&quot;, &quot;IP028.PN_%&quot;);&lt;br&gt;		}&lt;br&gt;		fileName = fileName.replace(&quot;%Parent File%&quot;, strParentFile);&lt;br&gt;		fileName = fileName.replace(&quot;%Shipper Short Code%&quot;, ShipperCode);&lt;br&gt;		Calendar cal = Calendar.getInstance();&lt;br&gt;		cal.add(Calendar.MONTH, -0);&lt;br&gt;		Date d = cal.getTime();&lt;br&gt;		String date1 = getCurrentDate(&quot;yyyy-MM-dd&quot;, d);&lt;br&gt;		String time1 = getCurrentDate(&quot;hh-mm-ss&quot;, d);&lt;br&gt;		fileName = fileName.replace(&quot;%SI_DATETIME(Bo variable)%&quot;, date1 + &quot;-&quot;&lt;br&gt;				+ time1);&lt;br&gt;		fileName = fileName.replace(&quot;.xls&quot;, &quot;.xls&quot;);&lt;br&gt;		return fileName;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	@SuppressWarnings(&quot;unchecked&quot;)&lt;br&gt;	public void sendEmail(String filename, String subject, String shipperCode)&lt;br&gt;	throws SQLException {&lt;br&gt;&lt;br&gt;		String from = &quot;xoserve.ipwdevtandtest@xoserve.com&quot;;&lt;br&gt;&lt;br&gt;		String bodyText = &quot;This is a important message with attachment&quot;&lt;br&gt;			+ &quot;n&quot;&lt;br&gt;			+ &quot;Please do not reply to this mail as it is a system generated mail&quot;&lt;br&gt;			+ &quot;n&quot;&lt;br&gt;			+ &quot;Incase of attachment problems please contact BO admin at rajendra.chandrashekar@tcs.com&quot;;&lt;br&gt;		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());&lt;br&gt;		String serverName = this.readProperty(&quot;SERVERNAME&quot;);&lt;br&gt;		int port = Integer.valueOf(this.readProperty(&quot;PORT&quot;));&lt;br&gt;		String user = this.readProperty(&quot;USER&quot;);&lt;br&gt;		String password = this.readProperty(&quot;PASSWORD&quot;);&lt;br&gt;		String SID = this.readProperty(&quot;SID&quot;);&lt;br&gt;		String URL = &quot;jdbc:oracle:thin:@&quot; + serverName + &quot;:&quot; + port + &quot;:&quot; + SID;&lt;br&gt;		Connection conn = DriverManager.getConnection(URL, user, password);&lt;br&gt;&lt;br&gt;		PreparedStatement stat = conn&lt;br&gt;		.prepareStatement(&quot;SELECT EMAIL_ID FROM SHIPPER_EMAIL WHERE SHIPPER_SHORT_CODE =?&quot;);&lt;br&gt;		stat.setString(1, shipperCode);&lt;br&gt;		ResultSet rs = stat.executeQuery();&lt;br&gt;&lt;br&gt;		Properties properties = new Properties();&lt;br&gt;		properties.put(&quot;mail.smtp.host&quot;, &quot;10.140.84.69&quot;);&lt;br&gt;		properties.put(&quot;mail.smtp.port&quot;, &quot;25&quot;);&lt;br&gt;		Session session = Session.getInstance(properties, null);&lt;br&gt;&lt;br&gt;		try {&lt;br&gt;			ArrayList tolist = new ArrayList();&lt;br&gt;			while (rs.next()) {&lt;br&gt;				tolist.add(rs.getString(1));&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			// String[] mail = (String[]) tolist.toArray();&lt;br&gt;&lt;br&gt;			MimeMessage message = new MimeMessage(session);&lt;br&gt;			message.setFrom(new InternetAddress(from));&lt;br&gt;&lt;br&gt;			InternetAddress[] addressTo = new InternetAddress[tolist.size()];&lt;br&gt;			for (int i = 0; i &lt; tolist.size(); i++) {&lt;br&gt;				addressTo[i] = new InternetAddress((String) tolist.get(i));&lt;br&gt;			}&lt;br&gt;			message.setRecipients(Message.RecipientType.TO, addressTo);&lt;br&gt;			message.setSubject(subject);&lt;br&gt;			message.setSentDate(new Date());&lt;br&gt;&lt;br&gt;			//&lt;br&gt;			// Set the email message text.&lt;br&gt;			//&lt;br&gt;			MimeBodyPart messagePart = new MimeBodyPart();&lt;br&gt;			messagePart.setText(bodyText);&lt;br&gt;&lt;br&gt;			//&lt;br&gt;			// Set the email attachment file&lt;br&gt;			//&lt;br&gt;			MimeBodyPart attachmentPart = new MimeBodyPart();&lt;br&gt;			FileDataSource fileDataSource = new FileDataSource(filename) {&lt;br&gt;				@Override&lt;br&gt;				public String getContentType() {&lt;br&gt;					return &quot;application/octet-stream&quot;;&lt;br&gt;				}&lt;br&gt;			};&lt;br&gt;			attachmentPart.setDataHandler(new DataHandler(fileDataSource));&lt;br&gt;			attachmentPart.setFileName(subject);&lt;br&gt;&lt;br&gt;			Multipart multipart = new MimeMultipart();&lt;br&gt;			multipart.addBodyPart(messagePart);&lt;br&gt;			multipart.addBodyPart(attachmentPart);&lt;br&gt;&lt;br&gt;			message.setContent(multipart);&lt;br&gt;&lt;br&gt;			Transport.send(message);&lt;br&gt;			this.createlogfile(&quot;sent file &quot;&lt;br&gt;					+ subject&lt;br&gt;					+ &quot; to &quot;&lt;br&gt;					+ tolist&lt;br&gt;					+ &quot; from &quot;&lt;br&gt;					+ from&lt;br&gt;					+ &quot; at &quot;&lt;br&gt;					+ this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar&lt;br&gt;							.getInstance().getTime()) + &quot;n&quot;);&lt;br&gt;&lt;br&gt;		} catch (MessagingException e) {&lt;br&gt;			e.printStackTrace();&lt;br&gt;		}&lt;br&gt;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;}</description>
		<content:encoded><![CDATA[<p>package com.xl;</p>
<p>import java.io.BufferedInputStream;<br />import java.io.BufferedWriter;<br />import java.io.Closeable;<br />import java.io.File;<br />import java.io.FileInputStream;<br />import java.io.FileNotFoundException;<br />import java.io.FileOutputStream;<br />import java.io.FileWriter;<br />import java.io.IOException;<br />import java.io.InputStream;<br />import java.io.PrintStream;<br />import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.PreparedStatement;<br />import java.sql.ResultSet;<br />import java.sql.SQLException;<br />import java.text.Format;<br />import java.text.SimpleDateFormat;<br />import java.util.ArrayList;<br />import java.util.Calendar;<br />import java.util.Date;<br />import java.util.Locale;<br />import java.util.Properties;<br />import java.util.zip.ZipEntry;<br />import java.util.zip.ZipOutputStream;</p>
<p>import javax.activation.DataHandler;<br />import javax.activation.FileDataSource;<br />import javax.mail.Message;<br />import javax.mail.MessagingException;<br />import javax.mail.Multipart;<br />import javax.mail.Session;<br />import javax.mail.Transport;<br />import javax.mail.internet.InternetAddress;<br />import javax.mail.internet.MimeBodyPart;<br />import javax.mail.internet.MimeMessage;<br />import javax.mail.internet.MimeMultipart;</p>
<p>import jxl.Cell;<br />import jxl.CellType;<br />import jxl.DateCell;<br />import jxl.LabelCell;<br />import jxl.Workbook;<br />import jxl.WorkbookSettings;<br />import jxl.read.biff.BiffException;<br />import jxl.write.DateTime;<br />import jxl.write.Label;<br />import jxl.write.WritableCellFormat;<br />import jxl.write.WritableSheet;<br />import jxl.write.WritableWorkbook;</p>
<p>import org.apache.poi.hssf.usermodel.HSSFCell;<br />import org.apache.poi.hssf.usermodel.HSSFSheet;<br />import org.apache.poi.hssf.usermodel.HSSFWorkbook;<br />import org.apache.poi.poifs.filesystem.POIFSFileSystem;</p>
<p>public class ReadWriteSheet {</p>
<p>	public ReadWriteSheet(InputStream input) {<br />		// TODO Auto-generated constructor stub<br />	}</p>
<p>	public void createlogfile(String message) {</p>
<p>		try {<br />			String name = this.readProperty(&#8220;OUTPUT_FOLDER&#8221;)<br />			+ &#8220;//&#8221;<br />			+ this.getCurrentDate(&#8220;MMMyyyy&#8221;, Calendar.getInstance()<br />					.getTime()) + &#8220;.log&#8221;;<br />			FileWriter fstream = new FileWriter(name, true);<br />			BufferedWriter out1 = new BufferedWriter(fstream);<br />			out1.write(message);<br />			out1.newLine();<br />			// Close the output stream<br />			out1.close();</p>
<p>		} catch (Exception e) {// Catch exception if any<br />			System.err.println(&#8220;Error: &#8221; + e.getMessage());<br />		}<br />	}</p>
<p>	public String readProperty(String strPropName)</p>
<p>	{</p>
<p>		// create an instance of properties class</p>
<p>		String strValue = &#8220;&#8221;;</p>
<p>		Properties props = new Properties();</p>
<p>		// try retrieve data from file</p>
<p>		try {</p>
<p>			File f = new File(System.getProperty(&#8220;user.dir&#8221;) + &#8220;\xl\&#8221;<br />					+ &#8220;message.properties&#8221;);<br />			props.load(new FileInputStream(f));</p>
<p>			strValue = props.getProperty(strPropName);</p>
<p>		}</p>
<p>		// catch exception in case properties file does not exist</p>
<p>		catch (IOException e)</p>
<p>		{</p>
<p>			e.printStackTrace();</p>
<p>		}</p>
<p>		return strValue;</p>
<p>	}</p>
<p>	public void createZipFile(File f, ZipOutputStream out) {</p>
<p>		final int BUFFER = 2048;</p>
<p>		try {</p>
<p>			BufferedInputStream origin = null;<br />			byte data[] = new byte[BUFFER];</p>
<p>			File[] files = f.listFiles();<br />			for (int i = 0; i &lt; files.length; i++) {<br />				if (files[i].isDirectory()) {<br />					createZipFile(files[i], out);<br />					continue;<br />				}<br />				if (!files[i].toString().contains(&#8220;.xls&#8221;))<br />					continue;<br />				System.out.println(&#8220;Adding: &#8221; + files[i]);</p>
<p>				FileInputStream fi = new FileInputStream(files[i]);</p>
<p>				origin = new BufferedInputStream(fi, BUFFER);<br />				System.out.println(files[i].toString());</p>
<p>				ZipEntry entry = new ZipEntry(files[i].toString());</p>
<p>				out.putNextEntry(entry);</p>
<p>				int count;</p>
<p>				while ((count = origin.read(data, 0, BUFFER)) != -1) {<br />					System.out.println(data);<br />					System.out.println(count);<br />					out.write(data, 0, count);</p>
<p>				}</p>
<p>				origin.close();<br />				System.out.println(files[i]);<br />				this.createlogfile(&#8220;zipped the file &#8220;<br />						+ files[i]<br />						        + &#8221; at&#8221;<br />						        + this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar<br />						        		.getInstance().getTime()));</p>
<p>			}</p>
<p>		} catch (Exception e) {</p>
<p>			e.printStackTrace();</p>
<p>		}</p>
<p>	}</p>
<p>	private static int searchRow(HSSFSheet s, int from) {<br />		try {<br />			for (int i = from; i &lt; s.getPhysicalNumberOfRows(); i++) {<br />				HSSFCell c = (HSSFCell) s.getRow(pStartRow).getCell((short) i);<br />				if (c.getType() == CellType.LABEL) {<br />					LabelCell l = (LabelCell) c;<br />					if (&#8220;Supply Point Id&#8221;.equals(l.getString()))<br />						return i &#8211; 1;<br />				}<br />			}<br />		} catch (Exception e) {<br />			e.printStackTrace(new PrintStream(System.out));<br />		}<br />		return -1;<br />	}</p>
<p>	private void createNewWorkBook(HSSFSheet s, int pStartRow,<br />			String pSiDateTime, String pOutPath, int intIndex, File pFileName)<br />	throws Exception {<br />		//LabelCell l = (LabelCell) s.getCellComment(0, pStartRow);<br />		HSSFCell l = (HSSFCell) s.getRow(pStartRow).getCell((short) 0);<br />		//String ShipperCode = l.getString();<br />		String ShipperCode = l.getStringCellValue();<br />		String filename = getFileName(ShipperCode, pSiDateTime, intIndex,<br />				pFileName);</p>
<p>		WorkbookSettings ws = new WorkbookSettings();<br />		ws.setLocale(new Locale(&#8220;en&#8221;, &#8220;EN&#8221;));<br />		WritableWorkbook workbook = Workbook.createWorkbook(new File(pOutPath,<br />				filename), ws);<br />		WritableSheet dstSheet = workbook.createSheet(&#8220;Sheet1&#8243;, 0);<br />		int dstRow = 0, srcRow = pStartRow;</p>
<p>		while (true) {<br />			//Cell c = (Cell) s.getCellComment(0, srcRow);<br />			HSSFCell c = (HSSFCell) s.getRow(srcRow).getCell((short) 0);<br />			if (c.getStringCellValue()==CellType.EMPTY.toString()) {<br />				break;<br />			}<br />			copyRow(s, srcRow, dstSheet, dstRow);<br />			srcRow++;<br />			dstRow++;<br />		}<br />		workbook.write();<br />		workbook.close();<br />		String strOutFolderName = this.readProperty(&#8220;OUTPUT_FOLDER&#8221;);<br />		// this.displayFromExcel(strOutFolderName+&#8221;\&#8221;+filename);<br />		// String strOutFolderName = this.readProperty(&#8220;OUTPUT_FOLDER&#8221;);<br />		this.createlogfile(&#8220;created file &#8220;<br />				+ filename<br />				+ &#8220;at &#8220;<br />				+ this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar<br />						.getInstance().getTime()));<br />		this.sendEmail(strOutFolderName + &#8220;\&#8221; + filename, filename,<br />				ShipperCode);</p>
<p>	}</p>
<p>	private static void copyRow(HSSFSheet srcSheet, int startRow,<br />			WritableSheet dstSheet, int dstRow) throws Exception {<br />		//Cell[] cells = srcSheet.getRow(startRow).getCell(dstRow);<br />		HSSFCell[] cells;<br />		for(int i=0;i&lt;srcSheet.getRow(startRow).getPhysicalNumberOfCells();i++){<br />			cells[i] = srcSheet.getRow(startRow).getCell((short) i);<br />		}<br />		for (HSSFCell c : cells) {<br />			if (c.getStringCellValue()==CellType.LABEL.toString()) {<br />				LabelCell l = (LabelCell) c;</p>
<p>				WritableCellFormat f = new WritableCellFormat(c.getCellFormat());<br />				dstSheet.addCell(new Label(c.getColumn(), dstRow,<br />						l.getString(), f));<br />			}<br />			if (c.getStringCellValue()==CellType.DATE.toString()) {<br />				DateCell dt = (DateCell) c;<br />				WritableCellFormat f = new WritableCellFormat(c.getCellFormat());<br />				dstSheet.addCell(new DateTime(c.getColumn(), dstRow, dt<br />						.getDate(), f));<br />			}<br />		}<br />	}</p>
<p>	public static void main(String[] args) throws IOException {<br />		ReadWriteSheet rws = new ReadWriteSheet(null);</p>
<p>		try {<br />			rws.createlogfile(&#8220;started process at &#8220;<br />					+ rws.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar<br />							.getInstance().getTime()));<br />			String strInpFolderName = rws.readProperty(&#8220;INPUT_FOLDER&#8221;);<br />			String strOutFolderName = rws.readProperty(&#8220;OUTPUT_FOLDER&#8221;);<br />			File f = new File(strInpFolderName); // here pass the directory</p>
<p>			File files[] = f.listFiles(); // this will give you a list of<br />			// excel<br />			// files in the directory<br />			Calendar cal = Calendar.getInstance();<br />			Date d = cal.getTime();<br />			String fileName = rws.getCurrentDate(&#8220;ddMMyyyy&#8221;, d) + &#8220;.zip&#8221;;<br />			FileOutputStream dest = null;<br />			try {<br />				dest = new FileOutputStream(strOutFolderName + &#8220;\&#8221; + fileName);<br />			} catch (FileNotFoundException e) {<br />				// TODO Auto-generated catch block<br />				e.printStackTrace();<br />			}</p>
<p>			ZipOutputStream out = new ZipOutputStream(dest);<br />			for (int i = 0; i &lt; files.length; i++) {<br />				if (!files[i].toString().contains(&#8220;.&#8221;))<br />					continue;<br />				rws.processWorkBook(files[i], &#8220;20090601&#8243;, strOutFolderName, i);</p>
<p>			}<br />			rws.createZipFile(f, out);</p>
<p>			out.close();<br />			rws.deleteExcelFiles(f);</p>
<p>		} catch (RuntimeException ex) {<br />			ex.printStackTrace(new PrintStream(System.out));<br />		}</p>
<p>	}</p>
<p>	private void deleteExcelFiles(File f) {<br />		File[] filelist = f.listFiles();<br />		for (int i = 0; i &lt; filelist.length; i++) {<br />			if (filelist[i].isDirectory()) {<br />				deleteExcelFiles(filelist[i]);<br />				continue;<br />			}<br />			if (!filelist[i].toString().contains(&#8220;.xls&#8221;))<br />				continue;<br />			filelist[i].delete();<br />			this.createlogfile(&#8220;deleted files&#8221;<br />					+ filelist[i]<br />					           + &#8220;at&#8221;<br />					           + this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar<br />					        		   .getInstance().getTime()) + &#8220;n&#8221;);</p>
<p>		}</p>
<p>	}</p>
<p>	/**<br />	 * Creates multiple excel files based on shipper code in input file<br />	 * <br />	 * @param pFileName<br />	 *            input file name<br />	 * @param pSiDateTime<br />	 *            BO variable<br />	 * @param pOutPath<br />	 *            Output directory name to store generated files<br />	 */<br />	public void processWorkBook(File pFileName, String pSiDateTime,<br />			String pOutPath, int intIndex) {<br />		try {<br />			String outPath = &#8220;.&#8221;;<br />			if (pOutPath != null) {<br />				outPath = pOutPath;<br />			}<br />			/*<br />			 * WorkbookSettings ws = new WorkbookSettings(); ws.setLocale(new<br />			 * Locale(&#8220;en&#8221;, &#8220;EN&#8221;));<br />			 * <br />			 * Workbook workbook = Workbook.getWorkbook(new<br />			 * File(pFileName.getAbsolutePath()), ws); Sheet s =<br />			 * workbook.getSheet(0);<br />			 */<br />			InputStream inputStream = new FileInputStream(pFileName.getAbsolutePath());<br />			HSSFWorkbook workbook = new HSSFWorkbook();<br />			POIFSFileSystem fileSystem = new POIFSFileSystem(inputStream);<br />			HSSFWorkbook workBook = new HSSFWorkbook(fileSystem);<br />			HSSFSheet s = workBook.getSheetAt(0);</p>
<p>			int start = 0;</p>
<p>			while ((start = searchRow(s, start + 2)) != -1) {<br />				createNewWorkBook(s, start, pSiDateTime, outPath, intIndex,<br />						pFileName);<br />			}<br />			((Closeable) workbook).close();<br />		} catch (BiffException e) {<br />			// TODO Auto-generated catch block<br />			e.printStackTrace();<br />		} catch (IOException e) {<br />			// TODO Auto-generated catch block<br />			e.printStackTrace();<br />		} catch (Exception e) {<br />			// TODO Auto-generated catch block<br />			e.printStackTrace();<br />		}<br />	}</p>
<p>	private String getCurrentDate(String format, Date d) {<br />		Format formatter = new SimpleDateFormat(format);<br />		return formatter.format(d);<br />	}</p>
<p>	private String getFileName(String ShipperCode, String siDateTime,<br />			int intIndex, File pFileName) {</p>
<p>		String fileName = &#8220;IP026.PN_%Parent File%_%Shipper Short Code%_%SI_DATETIME(Bo variable)%.xls&#8221;;<br />		String strInputFileName = pFileName.getName();<br />		String strDay = new String(strInputFileName.substring(strInputFileName<br />				.indexOf(&#8220;days&#8221;) &#8211; 2, strInputFileName.indexOf(&#8220;days&#8221;)));<br />		String strParentFile = strInputFileName.substring(0, strInputFileName<br />				.indexOf(&#8220;queries&#8221;));<br />		if (strDay.equalsIgnoreCase(&#8220;56&#8243;)) {<br />			fileName = fileName.replace(&#8220;IP026.PN_%&#8221;, &#8220;IP027.PN_%&#8221;);<br />		} else if (strDay.equalsIgnoreCase(&#8220;70&#8243;)) {<br />			fileName = fileName.replace(&#8220;IP026.PN_%&#8221;, &#8220;IP028.PN_%&#8221;);<br />		}<br />		fileName = fileName.replace(&#8220;%Parent File%&#8221;, strParentFile);<br />		fileName = fileName.replace(&#8220;%Shipper Short Code%&#8221;, ShipperCode);<br />		Calendar cal = Calendar.getInstance();<br />		cal.add(Calendar.MONTH, -0);<br />		Date d = cal.getTime();<br />		String date1 = getCurrentDate(&#8220;yyyy-MM-dd&#8221;, d);<br />		String time1 = getCurrentDate(&#8220;hh-mm-ss&#8221;, d);<br />		fileName = fileName.replace(&#8220;%SI_DATETIME(Bo variable)%&#8221;, date1 + &#8220;-&#8221;<br />				+ time1);<br />		fileName = fileName.replace(&#8220;.xls&#8221;, &#8220;.xls&#8221;);<br />		return fileName;<br />	}</p>
<p>	@SuppressWarnings(&#8220;unchecked&#8221;)<br />	public void sendEmail(String filename, String subject, String shipperCode)<br />	throws SQLException {</p>
<p>		String from = &#8220;xoserve.ipwdevtandtest@xoserve.com&#8221;;</p>
<p>		String bodyText = &#8220;This is a important message with attachment&#8221;<br />			+ &#8220;n&#8221;<br />			+ &#8220;Please do not reply to this mail as it is a system generated mail&#8221;<br />			+ &#8220;n&#8221;<br />			+ &#8220;Incase of attachment problems please contact BO admin at <a href="mailto:rajendra.chandrashekar@tcs.com">rajendra.chandrashekar@tcs.com</a>&#8220;;<br />		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());<br />		String serverName = this.readProperty(&#8220;SERVERNAME&#8221;);<br />		int port = Integer.valueOf(this.readProperty(&#8220;PORT&#8221;));<br />		String user = this.readProperty(&#8220;USER&#8221;);<br />		String password = this.readProperty(&#8220;PASSWORD&#8221;);<br />		String SID = this.readProperty(&#8220;SID&#8221;);<br />		String URL = &#8220;jdbc:oracle:thin:@&#8221; + serverName + &#8220;:&#8221; + port + &#8220;:&#8221; + SID;<br />		Connection conn = DriverManager.getConnection(URL, user, password);</p>
<p>		PreparedStatement stat = conn<br />		.prepareStatement(&#8220;SELECT EMAIL_ID FROM SHIPPER_EMAIL WHERE SHIPPER_SHORT_CODE =?&#8221;);<br />		stat.setString(1, shipperCode);<br />		ResultSet rs = stat.executeQuery();</p>
<p>		Properties properties = new Properties();<br />		properties.put(&#8220;mail.smtp.host&#8221;, &#8220;10.140.84.69&#8243;);<br />		properties.put(&#8220;mail.smtp.port&#8221;, &#8220;25&#8243;);<br />		Session session = Session.getInstance(properties, null);</p>
<p>		try {<br />			ArrayList tolist = new ArrayList();<br />			while (rs.next()) {<br />				tolist.add(rs.getString(1));<br />			}</p>
<p>			// String[] mail = (String[]) tolist.toArray();</p>
<p>			MimeMessage message = new MimeMessage(session);<br />			message.setFrom(new InternetAddress(from));</p>
<p>			InternetAddress[] addressTo = new InternetAddress[tolist.size()];<br />			for (int i = 0; i &lt; tolist.size(); i++) {<br />				addressTo[i] = new InternetAddress((String) tolist.get(i));<br />			}<br />			message.setRecipients(Message.RecipientType.TO, addressTo);<br />			message.setSubject(subject);<br />			message.setSentDate(new Date());</p>
<p>			//<br />			// Set the email message text.<br />			//<br />			MimeBodyPart messagePart = new MimeBodyPart();<br />			messagePart.setText(bodyText);</p>
<p>			//<br />			// Set the email attachment file<br />			//<br />			MimeBodyPart attachmentPart = new MimeBodyPart();<br />			FileDataSource fileDataSource = new FileDataSource(filename) {<br />				@Override<br />				public String getContentType() {<br />					return &#8220;application/octet-stream&#8221;;<br />				}<br />			};<br />			attachmentPart.setDataHandler(new DataHandler(fileDataSource));<br />			attachmentPart.setFileName(subject);</p>
<p>			Multipart multipart = new MimeMultipart();<br />			multipart.addBodyPart(messagePart);<br />			multipart.addBodyPart(attachmentPart);</p>
<p>			message.setContent(multipart);</p>
<p>			Transport.send(message);<br />			this.createlogfile(&#8220;sent file &#8220;<br />					+ subject<br />					+ &#8221; to &#8220;<br />					+ tolist<br />					+ &#8221; from &#8220;<br />					+ from<br />					+ &#8221; at &#8220;<br />					+ this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar<br />							.getInstance().getTime()) + &#8220;n&#8221;);</p>
<p>		} catch (MessagingException e) {<br />			e.printStackTrace();<br />		}</p>
<p>	}</p>
<p>}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: vaishaksuresh</title>
		<link>http://blog.vaishaksuresh.com/2009/04/15/terminator-meets-kuch-kuch-hota-hai/comment-page-1/#comment-110</link>
		<dc:creator>vaishaksuresh</dc:creator>
		<pubDate>Tue, 07 Jul 2009 21:28:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vaishaksuresh.com/?p=75#comment-110</guid>
		<description>import java.io.File;&lt;br&gt;import java.io.FileOutputStream;&lt;br&gt;import java.io.InputStream;&lt;br&gt;import java.util.ArrayList;&lt;br&gt;&lt;br&gt;import javax.servlet.http.HttpServletRequest;&lt;br&gt;import javax.servlet.http.HttpServletResponse;&lt;br&gt;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFCell;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFRow;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFSheet;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFWorkbook;&lt;br&gt;import org.apache.poi.poifs.filesystem.POIFSFileSystem;&lt;br&gt;import org.apache.struts.action.ActionForm;&lt;br&gt;import org.apache.struts.upload.FormFile;&lt;br&gt;&lt;br&gt;&lt;br&gt;import com.infosys.testreadexcel.form.TestExcelFormBean;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;public class POIReadExcel {&lt;br&gt;&lt;br&gt;&lt;br&gt;/*  This method reads the excel from form andd use the POI to aprse the excel&lt;br&gt; * Thwe values are displayed in console&lt;br&gt; */ &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;	public static ArrayList readPOIExcel( HttpServletRequest request, HttpServletResponse response,ActionForm form)&lt;br&gt;		throws Exception {&lt;br&gt;&lt;br&gt;		ArrayList lstPriceListDetails = new ArrayList();&lt;br&gt;		try {&lt;br&gt;			System.out.println(&quot;*************read excel from form   POI**********************************************************&quot;);&lt;br&gt;			System.out.println(&quot; in read excel from form   POI &quot;);&lt;br&gt;//						File objOutputFile = File.createTempFile(&quot;RMExcel&quot;, &quot;.lst&quot;);&lt;br&gt;//&lt;br&gt;//						FileOutputStream objFileOutputStream =&lt;br&gt;//							new FileOutputStream(objOutputFile);&lt;br&gt;//&lt;br&gt;//						objFileOutputStream.write(bFormData);&lt;br&gt;//&lt;br&gt;//&lt;br&gt;//&lt;br&gt;//						objFileOutputStream.flush();&lt;br&gt;//						objFileOutputStream.close();&lt;br&gt;//			&lt;br&gt;//			String strPath = new String(&quot;C:\Documents and Settings\Tejas_Shetty\Desktop\kaushal.xls&quot;);&lt;br&gt;//			File obj = new File (strPath);&lt;br&gt;		//	InputStream objInput = obj.;&lt;br&gt;		//File file = (File) request.getParameter(&quot;spreadsheet&quot;);&lt;br&gt;		&lt;br&gt;		TestExcelFormBean objForm = (TestExcelFormBean) form;&lt;br&gt;		FormFile objFormFile =&lt;br&gt;			(FormFile) objForm.getStrSourceFile();&lt;br&gt;			&lt;br&gt;			InputStream fis =(InputStream) objFormFile.getInputStream();&lt;br&gt;			POIFSFileSystem fs = new POIFSFileSystem(fis);&lt;br&gt;			&lt;br&gt;			HSSFWorkbook wb = new HSSFWorkbook(fs);&lt;br&gt;			HSSFSheet sheet = wb.getSheetAt(0);&lt;br&gt;			HSSFRow row = null;&lt;br&gt;			HSSFCell cell = null;&lt;br&gt;			int iRows = sheet.getLastRowNum();&lt;br&gt;			int iCell =0;&lt;br&gt;			System.out.println(&quot;Number of rows: &quot; + iRows);&lt;br&gt;			for(int i = 0;i&lt;=iRows;i++){&lt;br&gt;				row = sheet.getRow(i);&lt;br&gt;				if(row  ==null) {&lt;br&gt;					System.out.println(&quot;row is null&quot;);&lt;br&gt;				}&lt;br&gt;				iCell = row.getLastCellNum();&lt;br&gt;				for(short j=0;j&lt;iCell;j++){&lt;br&gt;					cell = row.getCell(j);&lt;br&gt;				&lt;br&gt;					int iSellType = cell.getCellType();&lt;br&gt;					switch(iSellType){&lt;br&gt;						case(HSSFCell.CELL_TYPE_BLANK):&lt;br&gt;							System.out.println(&quot; POI is blank &quot;);&lt;br&gt;							break;&lt;br&gt;						case(HSSFCell.CELL_TYPE_NUMERIC):&lt;br&gt;							System.out.println(&quot; POI numeric:&quot;+cell.getNumericCellValue());&lt;br&gt;							break;&lt;br&gt;						case(HSSFCell.CELL_TYPE_STRING):&lt;br&gt;							System.out.println(&quot; POI string:&quot;+cell.getStringCellValue());&lt;br&gt;							break;&lt;br&gt;						case(HSSFCell.CELL_TYPE_ERROR):&lt;br&gt;							System.out.println(&quot; POI Error &quot;);&lt;br&gt;							break;&lt;br&gt;							&lt;br&gt;						default:&lt;br&gt;							System.out.println(&quot; POI default&quot;);&lt;br&gt;					}&lt;br&gt;				}&lt;br&gt;			}&lt;br&gt;			fis.close();&lt;br&gt;			System.out.println(&quot;***********read excel from form   POI  end ************************************************************&quot;);&lt;br&gt;		} catch(Exception objEx){&lt;br&gt;			System.out.println(&quot; exception in readPOIExcel &quot;+objEx.toString());&lt;br&gt;		} &lt;br&gt;&lt;br&gt;&lt;br&gt;		return lstPriceListDetails;&lt;br&gt;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;	}</description>
		<content:encoded><![CDATA[<p>import java.io.File;<br />import java.io.FileOutputStream;<br />import java.io.InputStream;<br />import java.util.ArrayList;</p>
<p>import javax.servlet.http.HttpServletRequest;<br />import javax.servlet.http.HttpServletResponse;</p>
<p>import org.apache.poi.hssf.usermodel.HSSFCell;<br />import org.apache.poi.hssf.usermodel.HSSFRow;<br />import org.apache.poi.hssf.usermodel.HSSFSheet;<br />import org.apache.poi.hssf.usermodel.HSSFWorkbook;<br />import org.apache.poi.poifs.filesystem.POIFSFileSystem;<br />import org.apache.struts.action.ActionForm;<br />import org.apache.struts.upload.FormFile;</p>
<p>import com.infosys.testreadexcel.form.TestExcelFormBean;</p>
<p>public class POIReadExcel {</p>
<p>/*  This method reads the excel from form andd use the POI to aprse the excel<br /> * Thwe values are displayed in console<br /> */ </p>
<p>	public static ArrayList readPOIExcel( HttpServletRequest request, HttpServletResponse response,ActionForm form)<br />		throws Exception {</p>
<p>		ArrayList lstPriceListDetails = new ArrayList();<br />		try {<br />			System.out.println(&#8220;*************read excel from form   POI**********************************************************&#8221;);<br />			System.out.println(&#8221; in read excel from form   POI &#8220;);<br />//						File objOutputFile = File.createTempFile(&#8220;RMExcel&#8221;, &#8220;.lst&#8221;);<br />//<br />//						FileOutputStream objFileOutputStream =<br />//							new FileOutputStream(objOutputFile);<br />//<br />//						objFileOutputStream.write(bFormData);<br />//<br />//<br />//<br />//						objFileOutputStream.flush();<br />//						objFileOutputStream.close();<br />//			<br />//			String strPath = new String(&#8220;C:\Documents and Settings\Tejas_Shetty\Desktop\kaushal.xls&#8221;);<br />//			File obj = new File (strPath);<br />		//	InputStream objInput = obj.;<br />		//File file = (File) request.getParameter(&#8220;spreadsheet&#8221;);</p>
<p>		TestExcelFormBean objForm = (TestExcelFormBean) form;<br />		FormFile objFormFile =<br />			(FormFile) objForm.getStrSourceFile();</p>
<p>			InputStream fis =(InputStream) objFormFile.getInputStream();<br />			POIFSFileSystem fs = new POIFSFileSystem(fis);</p>
<p>			HSSFWorkbook wb = new HSSFWorkbook(fs);<br />			HSSFSheet sheet = wb.getSheetAt(0);<br />			HSSFRow row = null;<br />			HSSFCell cell = null;<br />			int iRows = sheet.getLastRowNum();<br />			int iCell =0;<br />			System.out.println(&#8220;Number of rows: &#8221; + iRows);<br />			for(int i = 0;i&lt;=iRows;i++){<br />				row = sheet.getRow(i);<br />				if(row  ==null) {<br />					System.out.println(&#8220;row is null&#8221;);<br />				}<br />				iCell = row.getLastCellNum();<br />				for(short j=0;j&lt;iCell;j++){<br />					cell = row.getCell(j);</p>
<p>					int iSellType = cell.getCellType();<br />					switch(iSellType){<br />						case(HSSFCell.CELL_TYPE_BLANK):<br />							System.out.println(&#8221; POI is blank &#8220;);<br />							break;<br />						case(HSSFCell.CELL_TYPE_NUMERIC):<br />							System.out.println(&#8221; POI numeric:&#8221;+cell.getNumericCellValue());<br />							break;<br />						case(HSSFCell.CELL_TYPE_STRING):<br />							System.out.println(&#8221; POI string:&#8221;+cell.getStringCellValue());<br />							break;<br />						case(HSSFCell.CELL_TYPE_ERROR):<br />							System.out.println(&#8221; POI Error &#8220;);<br />							break;</p>
<p>						default:<br />							System.out.println(&#8221; POI default&#8221;);<br />					}<br />				}<br />			}<br />			fis.close();<br />			System.out.println(&#8220;***********read excel from form   POI  end ************************************************************&#8221;);<br />		} catch(Exception objEx){<br />			System.out.println(&#8221; exception in readPOIExcel &#8220;+objEx.toString());<br />		} </p>
<p>		return lstPriceListDetails;</p>
<p>	}</p>
<p>	}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: vaishaksuresh</title>
		<link>http://blog.vaishaksuresh.com/2009/04/15/terminator-meets-kuch-kuch-hota-hai/comment-page-1/#comment-109</link>
		<dc:creator>vaishaksuresh</dc:creator>
		<pubDate>Tue, 07 Jul 2009 21:24:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vaishaksuresh.com/?p=75#comment-109</guid>
		<description>package com.infosys.testreadexcel.process;&lt;br&gt;&lt;br&gt;&lt;br&gt;import java.io.File;&lt;br&gt;import java.io.FileOutputStream;&lt;br&gt;import java.io.InputStream;&lt;br&gt;import java.util.ArrayList;&lt;br&gt;&lt;br&gt;import javax.servlet.http.HttpServletRequest;&lt;br&gt;import javax.servlet.http.HttpServletResponse;&lt;br&gt;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFCell;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFRow;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFSheet;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFWorkbook;&lt;br&gt;import org.apache.poi.poifs.filesystem.POIFSFileSystem;&lt;br&gt;import org.apache.struts.action.ActionForm;&lt;br&gt;import org.apache.struts.upload.FormFile;&lt;br&gt;&lt;br&gt;&lt;br&gt;import com.infosys.testreadexcel.form.TestExcelFormBean;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;/**&lt;br&gt; *&lt;p&gt;&lt;strong&gt;Title: &lt;/strong&gt;ReadExcel&lt;/p&gt;&lt;br&gt; *&lt;p&gt;&lt;strong&gt;Description: &lt;/strong&gt;Class containing the method to read the excel file.&lt;/p&gt;&lt;br&gt;&lt;br&gt; *&lt;br&gt; *@author  Infosys&lt;br&gt; *@version 1.00&lt;br&gt; *&lt;br&gt; *&lt;pre&gt;&lt;p&gt;&lt;strong&gt;Modification Log:&lt;/strong&gt;&lt;/p&gt;&lt;br&gt; *&lt;br&gt; *&lt;p&gt;Version  Date        Author   Description&lt;/p&gt;&lt;br&gt; *&lt;p&gt;1.00     01/19/07    Infosys  Original Version&lt;/p&gt;&lt;/pre&gt;&lt;br&gt; *&lt;br&gt; */&lt;br&gt;&lt;br&gt;public class POIReadExcel {&lt;br&gt;&lt;br&gt;&lt;br&gt;/*  This method reads the excel from form andd use the POI to aprse the excel&lt;br&gt; * Thwe values are displayed in console&lt;br&gt; */ &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;	public static ArrayList readPOIExcel( HttpServletRequest request, HttpServletResponse response,ActionForm form)&lt;br&gt;		throws Exception {&lt;br&gt;&lt;br&gt;		ArrayList lstPriceListDetails = new ArrayList();&lt;br&gt;		try {&lt;br&gt;			System.out.println(&quot;*************read excel from form   POI**********************************************************&quot;);&lt;br&gt;			System.out.println(&quot; in read excel from form   POI &quot;);&lt;br&gt;//						File objOutputFile = File.createTempFile(&quot;RMExcel&quot;, &quot;.lst&quot;);&lt;br&gt;//&lt;br&gt;//						FileOutputStream objFileOutputStream =&lt;br&gt;//							new FileOutputStream(objOutputFile);&lt;br&gt;//&lt;br&gt;//						objFileOutputStream.write(bFormData);&lt;br&gt;//&lt;br&gt;//&lt;br&gt;//&lt;br&gt;//						objFileOutputStream.flush();&lt;br&gt;//						objFileOutputStream.close();&lt;br&gt;//			&lt;br&gt;//			String strPath = new String(&quot;C:\Documents and Settings\Tejas_Shetty\Desktop\kaushal.xls&quot;);&lt;br&gt;//			File obj = new File (strPath);&lt;br&gt;		//	InputStream objInput = obj.;&lt;br&gt;		//File file = (File) request.getParameter(&quot;spreadsheet&quot;);&lt;br&gt;		&lt;br&gt;		TestExcelFormBean objForm = (TestExcelFormBean) form;&lt;br&gt;		FormFile objFormFile =&lt;br&gt;			(FormFile) objForm.getStrSourceFile();&lt;br&gt;			&lt;br&gt;			InputStream fis =(InputStream) objFormFile.getInputStream();&lt;br&gt;			POIFSFileSystem fs = new POIFSFileSystem(fis);&lt;br&gt;			&lt;br&gt;			HSSFWorkbook wb = new HSSFWorkbook(fs);&lt;br&gt;			HSSFSheet sheet = wb.getSheetAt(0);&lt;br&gt;			HSSFRow row = null;&lt;br&gt;			HSSFCell cell = null;&lt;br&gt;			int iRows = sheet.getLastRowNum();&lt;br&gt;			int iCell =0;&lt;br&gt;			System.out.println(&quot;Number of rows: &quot; + iRows);&lt;br&gt;			for(int i = 0;i&lt;=iRows;i++){&lt;br&gt;				row = sheet.getRow(i);&lt;br&gt;				if(row  ==null) {&lt;br&gt;					System.out.println(&quot;row is null&quot;);&lt;br&gt;				}&lt;br&gt;				iCell = row.getLastCellNum();&lt;br&gt;				for(short j=0;j&lt;iCell;j++){&lt;br&gt;					cell = row.getCell(j);&lt;br&gt;				&lt;br&gt;					int iSellType = cell.getCellType();&lt;br&gt;					switch(iSellType){&lt;br&gt;						case(HSSFCell.CELL_TYPE_BLANK):&lt;br&gt;							System.out.println(&quot; POI is blank &quot;);&lt;br&gt;							break;&lt;br&gt;						case(HSSFCell.CELL_TYPE_NUMERIC):&lt;br&gt;							System.out.println(&quot; POI numeric:&quot;+cell.getNumericCellValue());&lt;br&gt;							break;&lt;br&gt;						case(HSSFCell.CELL_TYPE_STRING):&lt;br&gt;							System.out.println(&quot; POI string:&quot;+cell.getStringCellValue());&lt;br&gt;							break;&lt;br&gt;						case(HSSFCell.CELL_TYPE_ERROR):&lt;br&gt;							System.out.println(&quot; POI Error &quot;);&lt;br&gt;							break;&lt;br&gt;							&lt;br&gt;						default:&lt;br&gt;							System.out.println(&quot; POI default&quot;);&lt;br&gt;					}&lt;br&gt;				}&lt;br&gt;			}&lt;br&gt;			fis.close();&lt;br&gt;			System.out.println(&quot;***********read excel from form   POI  end ************************************************************&quot;);&lt;br&gt;		} catch(Exception objEx){&lt;br&gt;			System.out.println(&quot; exception in readPOIExcel &quot;+objEx.toString());&lt;br&gt;		} &lt;br&gt;&lt;br&gt;&lt;br&gt;		return lstPriceListDetails;&lt;br&gt;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;	}</description>
		<content:encoded><![CDATA[<p>package com.infosys.testreadexcel.process;</p>
<p>import java.io.File;<br />import java.io.FileOutputStream;<br />import java.io.InputStream;<br />import java.util.ArrayList;</p>
<p>import javax.servlet.http.HttpServletRequest;<br />import javax.servlet.http.HttpServletResponse;</p>
<p>import org.apache.poi.hssf.usermodel.HSSFCell;<br />import org.apache.poi.hssf.usermodel.HSSFRow;<br />import org.apache.poi.hssf.usermodel.HSSFSheet;<br />import org.apache.poi.hssf.usermodel.HSSFWorkbook;<br />import org.apache.poi.poifs.filesystem.POIFSFileSystem;<br />import org.apache.struts.action.ActionForm;<br />import org.apache.struts.upload.FormFile;</p>
<p>import com.infosys.testreadexcel.form.TestExcelFormBean;</p>
<p>/**<br /> *
<p><strong>Title: </strong>ReadExcel</p>
<p> *
<p><strong>Description: </strong>Class containing the method to read the excel file.</p>
<p> *<br /> *@author  Infosys<br /> *@version 1.00<br /> *<br /> *&lt;pre&gt;
<p><strong>Modification Log:</strong></p>
<p> *<br /> *
<p>Version  Date        Author   Description</p>
<p> *
<p>1.00     01/19/07    Infosys  Original Version</p>
<p>&lt;/pre&gt;<br /> *<br /> */</p>
<p>public class POIReadExcel {</p>
<p>/*  This method reads the excel from form andd use the POI to aprse the excel<br /> * Thwe values are displayed in console<br /> */ </p>
<p>	public static ArrayList readPOIExcel( HttpServletRequest request, HttpServletResponse response,ActionForm form)<br />		throws Exception {</p>
<p>		ArrayList lstPriceListDetails = new ArrayList();<br />		try {<br />			System.out.println(&#8220;*************read excel from form   POI**********************************************************&#8221;);<br />			System.out.println(&#8221; in read excel from form   POI &#8220;);<br />//						File objOutputFile = File.createTempFile(&#8220;RMExcel&#8221;, &#8220;.lst&#8221;);<br />//<br />//						FileOutputStream objFileOutputStream =<br />//							new FileOutputStream(objOutputFile);<br />//<br />//						objFileOutputStream.write(bFormData);<br />//<br />//<br />//<br />//						objFileOutputStream.flush();<br />//						objFileOutputStream.close();<br />//			<br />//			String strPath = new String(&#8220;C:\Documents and Settings\Tejas_Shetty\Desktop\kaushal.xls&#8221;);<br />//			File obj = new File (strPath);<br />		//	InputStream objInput = obj.;<br />		//File file = (File) request.getParameter(&#8220;spreadsheet&#8221;);</p>
<p>		TestExcelFormBean objForm = (TestExcelFormBean) form;<br />		FormFile objFormFile =<br />			(FormFile) objForm.getStrSourceFile();</p>
<p>			InputStream fis =(InputStream) objFormFile.getInputStream();<br />			POIFSFileSystem fs = new POIFSFileSystem(fis);</p>
<p>			HSSFWorkbook wb = new HSSFWorkbook(fs);<br />			HSSFSheet sheet = wb.getSheetAt(0);<br />			HSSFRow row = null;<br />			HSSFCell cell = null;<br />			int iRows = sheet.getLastRowNum();<br />			int iCell =0;<br />			System.out.println(&#8220;Number of rows: &#8221; + iRows);<br />			for(int i = 0;i&lt;=iRows;i++){<br />				row = sheet.getRow(i);<br />				if(row  ==null) {<br />					System.out.println(&#8220;row is null&#8221;);<br />				}<br />				iCell = row.getLastCellNum();<br />				for(short j=0;j&lt;iCell;j++){<br />					cell = row.getCell(j);</p>
<p>					int iSellType = cell.getCellType();<br />					switch(iSellType){<br />						case(HSSFCell.CELL_TYPE_BLANK):<br />							System.out.println(&#8221; POI is blank &#8220;);<br />							break;<br />						case(HSSFCell.CELL_TYPE_NUMERIC):<br />							System.out.println(&#8221; POI numeric:&#8221;+cell.getNumericCellValue());<br />							break;<br />						case(HSSFCell.CELL_TYPE_STRING):<br />							System.out.println(&#8221; POI string:&#8221;+cell.getStringCellValue());<br />							break;<br />						case(HSSFCell.CELL_TYPE_ERROR):<br />							System.out.println(&#8221; POI Error &#8220;);<br />							break;</p>
<p>						default:<br />							System.out.println(&#8221; POI default&#8221;);<br />					}<br />				}<br />			}<br />			fis.close();<br />			System.out.println(&#8220;***********read excel from form   POI  end ************************************************************&#8221;);<br />		} catch(Exception objEx){<br />			System.out.println(&#8221; exception in readPOIExcel &#8220;+objEx.toString());<br />		} </p>
<p>		return lstPriceListDetails;</p>
<p>	}</p>
<p>	}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anu</title>
		<link>http://blog.vaishaksuresh.com/2009/04/15/terminator-meets-kuch-kuch-hota-hai/comment-page-1/#comment-108</link>
		<dc:creator>anu</dc:creator>
		<pubDate>Tue, 07 Jul 2009 20:25:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vaishaksuresh.com/?p=75#comment-108</guid>
		<description>package xl;&lt;br&gt;&lt;br&gt;import java.io.BufferedInputStream;&lt;br&gt;import java.io.BufferedWriter;&lt;br&gt;import java.io.Closeable;&lt;br&gt;import java.io.File;&lt;br&gt;import java.io.FileInputStream;&lt;br&gt;import java.io.FileNotFoundException;&lt;br&gt;import java.io.FileOutputStream;&lt;br&gt;import java.io.FileWriter;&lt;br&gt;import java.io.IOException;&lt;br&gt;import java.io.InputStream;&lt;br&gt;import java.io.PrintStream;&lt;br&gt;import java.sql.Connection;&lt;br&gt;import java.sql.DriverManager;&lt;br&gt;import java.sql.PreparedStatement;&lt;br&gt;import java.sql.ResultSet;&lt;br&gt;import java.sql.SQLException;&lt;br&gt;import java.text.Format;&lt;br&gt;import java.text.SimpleDateFormat;&lt;br&gt;import java.util.ArrayList;&lt;br&gt;import java.util.Calendar;&lt;br&gt;import java.util.Date;&lt;br&gt;import java.util.Iterator;&lt;br&gt;import java.util.Locale;&lt;br&gt;import java.util.Properties;&lt;br&gt;import java.util.zip.ZipEntry;&lt;br&gt;import java.util.zip.ZipOutputStream;&lt;br&gt;&lt;br&gt;import javax.activation.DataHandler;&lt;br&gt;import javax.activation.FileDataSource;&lt;br&gt;import javax.mail.Message;&lt;br&gt;import javax.mail.MessagingException;&lt;br&gt;import javax.mail.Multipart;&lt;br&gt;import javax.mail.Session;&lt;br&gt;import javax.mail.Transport;&lt;br&gt;import javax.mail.internet.InternetAddress;&lt;br&gt;import javax.mail.internet.MimeBodyPart;&lt;br&gt;import javax.mail.internet.MimeMessage;&lt;br&gt;import javax.mail.internet.MimeMultipart;&lt;br&gt;&lt;br&gt;import jxl.Cell;&lt;br&gt;import jxl.CellType;&lt;br&gt;import jxl.DateCell;&lt;br&gt;import jxl.LabelCell;&lt;br&gt;import jxl.Sheet;&lt;br&gt;import jxl.Workbook;&lt;br&gt;import jxl.WorkbookSettings;&lt;br&gt;import jxl.read.biff.BiffException;&lt;br&gt;import jxl.write.DateTime;&lt;br&gt;import jxl.write.Label;&lt;br&gt;import jxl.write.WritableCellFormat;&lt;br&gt;import jxl.write.WritableSheet;&lt;br&gt;import jxl.write.WritableWorkbook;&lt;br&gt;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFCell;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFRichTextString;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFRow;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFSheet;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFWorkbook;&lt;br&gt;import org.apache.poi.poifs.filesystem.POIFSFileSystem;&lt;br&gt;&lt;br&gt;&lt;br&gt;public class ReadWriteSheet {&lt;br&gt;	&lt;br&gt;&lt;br&gt;	&lt;br&gt;	public ReadWriteSheet(InputStream input) {&lt;br&gt;		// TODO Auto-generated constructor stub&lt;br&gt;	}&lt;br&gt;&lt;br&gt;&lt;br&gt;	public void createlogfile(String message){&lt;br&gt;		&lt;br&gt;	 try {&lt;br&gt;			 String name=this.readProperty(&quot;OUTPUT_FOLDER&quot;)+&quot;//&quot;+this.getCurrentDate(&quot;MMMyyyy&quot;, Calendar.getInstance().getTime())+&quot;.log&quot;;&lt;br&gt;			 FileWriter fstream = new FileWriter(name,true);&lt;br&gt;		        BufferedWriter out1 = new BufferedWriter(fstream);&lt;br&gt;		        out1.write(message);&lt;br&gt;		        out1.newLine();&lt;br&gt;		        //Close the output stream&lt;br&gt;		        out1.close();&lt;br&gt;&lt;br&gt;		 }&lt;br&gt;		 catch(Exception e){//Catch exception if any&lt;br&gt;		      System.err.println(&quot;Error: &quot; + e.getMessage());&lt;br&gt;		    }&lt;br&gt;		  }&lt;br&gt; &lt;br&gt;&lt;br&gt;	public String readProperty(String strPropName)&lt;br&gt;&lt;br&gt;	{&lt;br&gt;&lt;br&gt;		// create an instance of properties class&lt;br&gt;&lt;br&gt;		String strValue = &quot;&quot;;&lt;br&gt;&lt;br&gt;		Properties props = new Properties();&lt;br&gt;&lt;br&gt;		// try retrieve data from file&lt;br&gt;&lt;br&gt;		try {&lt;br&gt;&lt;br&gt;			File f = new File(System.getProperty(&quot;user.dir&quot;) + &quot;\xl\&quot;&lt;br&gt;					+ &quot;message.properties&quot;);&lt;br&gt;			props.load(new FileInputStream(f));&lt;br&gt;&lt;br&gt;			strValue = props.getProperty(strPropName);&lt;br&gt;&lt;br&gt;		}&lt;br&gt;&lt;br&gt;		// catch exception in case properties file does not exist&lt;br&gt;&lt;br&gt;		catch (IOException e)&lt;br&gt;&lt;br&gt;		{&lt;br&gt;&lt;br&gt;			e.printStackTrace();&lt;br&gt;&lt;br&gt;		}&lt;br&gt;&lt;br&gt;		return strValue;&lt;br&gt;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	public void createZipFile(File f, ZipOutputStream out) {&lt;br&gt;&lt;br&gt;		final int BUFFER = 2048;&lt;br&gt;		 &lt;br&gt;&lt;br&gt;		try {&lt;br&gt;&lt;br&gt;			BufferedInputStream origin = null;&lt;br&gt;			byte data[] = new byte[BUFFER];&lt;br&gt;&lt;br&gt;			File [] files = f.listFiles();&lt;br&gt;			for (int i = 0; i &lt; files.length; i++) {&lt;br&gt;				if(files[i].isDirectory()){&lt;br&gt;					createZipFile(files[i], out);&lt;br&gt;					continue;&lt;br&gt;				}&lt;br&gt;				if(!files[i].toString().contains(&quot;.xls&quot;))&lt;br&gt;					continue;&lt;br&gt;				System.out.println(&quot;Adding: &quot;+files[i]);&lt;br&gt;&lt;br&gt;				FileInputStream fi = new FileInputStream(files[i]);&lt;br&gt;&lt;br&gt;				origin = new BufferedInputStream(fi, BUFFER);&lt;br&gt;				System.out.println(files[i].toString());&lt;br&gt;				&lt;br&gt;				ZipEntry entry = new ZipEntry(files[i].toString());&lt;br&gt;				&lt;br&gt;				out.putNextEntry(entry);&lt;br&gt;&lt;br&gt;				int count;&lt;br&gt;&lt;br&gt;				while ((count = origin.read(data, 0, BUFFER)) != -1) {&lt;br&gt;					System.out.println(data);&lt;br&gt;					System.out.println(count);&lt;br&gt;					out.write(data, 0, count);&lt;br&gt;&lt;br&gt;				}&lt;br&gt;				&lt;br&gt;				origin.close();&lt;br&gt;				System.out.println(files[i]);&lt;br&gt;				this.createlogfile(&quot;zipped the file &quot;+files[i]+ &quot; at&quot; +this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime()));&lt;br&gt;				  &lt;br&gt;&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			&lt;br&gt;&lt;br&gt;		} catch (Exception e) {&lt;br&gt;&lt;br&gt;			e.printStackTrace();&lt;br&gt;&lt;br&gt;		}&lt;br&gt;		&lt;br&gt;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	private static int searchRow(HSSFSheet s, int from) {&lt;br&gt;		try {&lt;br&gt;			for (int i = from; i &lt; s.getRows(); i++) {&lt;br&gt;				Cell c = s.getCellComment(0, i);&lt;br&gt;				if (c.getType() == CellType.LABEL) {&lt;br&gt;					LabelCell l = (LabelCell) c;&lt;br&gt;					if (&quot;Supply Point Id&quot;.equals(l.getString()))&lt;br&gt;						return i - 1;&lt;br&gt;				}&lt;br&gt;			}&lt;br&gt;		} catch (Exception e) {&lt;br&gt;			e.printStackTrace(new PrintStream(System.out));&lt;br&gt;		}&lt;br&gt;		return -1;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	private void createNewWorkBook(HSSFSheet s, int pStartRow,&lt;br&gt;			String pSiDateTime, String pOutPath, int intIndex, File pFileName) throws Exception {&lt;br&gt;		LabelCell l = (LabelCell) s.getCellComment(0, pStartRow);&lt;br&gt;		String ShipperCode = l.getString();&lt;br&gt;		String filename = getFileName(ShipperCode, pSiDateTime, intIndex,pFileName);&lt;br&gt;&lt;br&gt;		WorkbookSettings ws = new WorkbookSettings();&lt;br&gt;		ws.setLocale(new Locale(&quot;en&quot;, &quot;EN&quot;));&lt;br&gt;		WritableWorkbook workbook = Workbook.createWorkbook(new File(pOutPath, filename), ws);&lt;br&gt;		WritableSheet dstSheet = workbook.createSheet(&quot;Sheet1&quot;, 0);&lt;br&gt;		int dstRow = 0, srcRow = pStartRow;&lt;br&gt;&lt;br&gt;		while (true) {&lt;br&gt;			Cell c = (Cell) s.getCellComment(0, srcRow);&lt;br&gt;			if (c.getType() == CellType.EMPTY) {&lt;br&gt;				break;&lt;br&gt;			}&lt;br&gt;			copyRow(s, srcRow, dstSheet, dstRow);&lt;br&gt;			srcRow++;&lt;br&gt;			dstRow++;&lt;br&gt;		}&lt;br&gt;		workbook.write();&lt;br&gt;		workbook.close();&lt;br&gt;		String strOutFolderName = this.readProperty(&quot;OUTPUT_FOLDER&quot;);&lt;br&gt;		//this.displayFromExcel(strOutFolderName+&quot;\&quot;+filename);&lt;br&gt;		//String strOutFolderName = this.readProperty(&quot;OUTPUT_FOLDER&quot;);&lt;br&gt;		this.createlogfile(&quot;created file &quot;+filename+&quot;at &quot;+this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime()));&lt;br&gt;		this.sendEmail(strOutFolderName+&quot;\&quot;+filename,filename,ShipperCode);&lt;br&gt;		&lt;br&gt;		&lt;br&gt;		&lt;br&gt;		&lt;br&gt;&lt;br&gt;	}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;	private static void copyRow(HSSFSheet srcSheet, int startRow,&lt;br&gt;			WritableSheet dstSheet, int dstRow) throws Exception {&lt;br&gt;		Cell[] cells = srcSheet.getRow(startRow).getCell(dstRow);&lt;br&gt;		for (Cell c : cells) {&lt;br&gt;			if (c.getType() == CellType.LABEL) {&lt;br&gt;				LabelCell l = (LabelCell) c;&lt;br&gt;&lt;br&gt;				WritableCellFormat f = new WritableCellFormat(c.getCellFormat());&lt;br&gt;				dstSheet.addCell(new Label(c.getColumn(), dstRow,l.getString(), f));&lt;br&gt;			}&lt;br&gt;			if (c.getType() == CellType.DATE) {&lt;br&gt;				DateCell dt = (DateCell) c;&lt;br&gt;				WritableCellFormat f = new WritableCellFormat(c.getCellFormat());&lt;br&gt;				dstSheet.addCell(new DateTime(c.getColumn(), dstRow, dt&lt;br&gt;						.getDate(), f));&lt;br&gt;			}&lt;br&gt;		}&lt;br&gt;	}&lt;br&gt;&lt;br&gt;&lt;br&gt;	public static void main(String[] args) throws IOException {&lt;br&gt;		ReadWriteSheet rws = new ReadWriteSheet(null);&lt;br&gt;		&lt;br&gt;		try {&lt;br&gt;			rws.createlogfile(&quot;started process at &quot;+ rws.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime()));&lt;br&gt;			String strInpFolderName = rws.readProperty(&quot;INPUT_FOLDER&quot;);&lt;br&gt;			String strOutFolderName = rws.readProperty(&quot;OUTPUT_FOLDER&quot;);&lt;br&gt;			File f = new File(strInpFolderName); // here pass the directory&lt;br&gt;			&lt;br&gt;			File files[] = f.listFiles(); // this will give you a list of excel&lt;br&gt;			// files in the directory&lt;br&gt;			Calendar cal = Calendar.getInstance();&lt;br&gt;			Date d = cal.getTime();&lt;br&gt;			String fileName = rws.getCurrentDate(&quot;ddMMyyyy&quot;, d)+&quot;.zip&quot;;&lt;br&gt;			FileOutputStream dest = null;&lt;br&gt;			try {&lt;br&gt;				dest = new FileOutputStream(strOutFolderName&lt;br&gt;						+ &quot;\&quot; + fileName);&lt;br&gt;			} catch (FileNotFoundException e) {&lt;br&gt;				// TODO Auto-generated catch block&lt;br&gt;				e.printStackTrace();&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			ZipOutputStream out = new ZipOutputStream(dest);&lt;br&gt;			for (int i = 0; i &lt; files.length; i++) {&lt;br&gt;				if(!files[i].toString().contains(&quot;.&quot;))&lt;br&gt;					continue;&lt;br&gt;				rws.processWorkBook(files[i], &quot;20090601&quot;, strOutFolderName, i);&lt;br&gt;				&lt;br&gt;			}&lt;br&gt;			rws.createZipFile(f, out);&lt;br&gt;		&lt;br&gt;			out.close();&lt;br&gt;			rws.deleteExcelFiles(f);&lt;br&gt;			&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;		} catch (RuntimeException ex) {&lt;br&gt;			ex.printStackTrace(new PrintStream(System.out));&lt;br&gt;		}&lt;br&gt;		&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	private void deleteExcelFiles(File f) {&lt;br&gt;		File [] filelist = f.listFiles();&lt;br&gt;		for(int i=0;i&lt;filelist.length;i++){&lt;br&gt;			if(filelist[i].isDirectory()){&lt;br&gt;				deleteExcelFiles(filelist[i]);&lt;br&gt;				continue;&lt;br&gt;			}&lt;br&gt;			if(!filelist[i].toString().contains(&quot;.xls&quot;))&lt;br&gt;				continue;&lt;br&gt;			filelist[i].delete();&lt;br&gt;			this.createlogfile(&quot;deleted files&quot; + filelist[i] + &quot;at&quot;+this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime())+&quot;n&quot;);&lt;br&gt;		&lt;br&gt;		     &lt;br&gt;		}&lt;br&gt;		&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	/**&lt;br&gt;	 * Creates multiple excel files based on shipper code in input file&lt;br&gt;	 * &lt;br&gt;	 * @param pFileName&lt;br&gt;	 *            input file name&lt;br&gt;	 * @param pSiDateTime&lt;br&gt;	 *            BO variable&lt;br&gt;	 * @param pOutPath&lt;br&gt;	 *            Output directory name to store generated files&lt;br&gt;	 */&lt;br&gt;	public void processWorkBook(File pFileName, String pSiDateTime,&lt;br&gt;			String pOutPath, int intIndex) {&lt;br&gt;		try {&lt;br&gt;			String outPath = &quot;.&quot;;&lt;br&gt;			if (pOutPath != null) {&lt;br&gt;				outPath = pOutPath;&lt;br&gt;			}&lt;br&gt;			/*WorkbookSettings ws = new WorkbookSettings();&lt;br&gt;			ws.setLocale(new Locale(&quot;en&quot;, &quot;EN&quot;));&lt;br&gt;&lt;br&gt;			Workbook workbook = Workbook.getWorkbook(new File(pFileName.getAbsolutePath()), ws);&lt;br&gt;			Sheet s = workbook.getSheet(0);*/&lt;br&gt;			InputStream inputStream = null;&lt;br&gt;			&lt;br&gt;			HSSFWorkbook workbook = new HSSFWorkbook();&lt;br&gt;			inputStream = new FileInputStream (pFileName.getAbsolutePath());&lt;br&gt;			POIFSFileSystem fileSystem = null;&lt;br&gt;			fileSystem = new POIFSFileSystem (inputStream);&lt;br&gt;&lt;br&gt;			HSSFWorkbook      workBook = new HSSFWorkbook (fileSystem);&lt;br&gt;			HSSFSheet         s    = workBook.getSheetAt (0);&lt;br&gt;			int start = 0;&lt;br&gt;&lt;br&gt;			while ((start = searchRow(s, start + 2)) != -1) {&lt;br&gt;				createNewWorkBook(s, start, pSiDateTime, outPath, intIndex,pFileName);&lt;br&gt;			}&lt;br&gt;			((Closeable) workbook).close();&lt;br&gt;		} catch (BiffException e) {&lt;br&gt;			// TODO Auto-generated catch block&lt;br&gt;			e.printStackTrace();&lt;br&gt;		} catch (IOException e) {&lt;br&gt;			// TODO Auto-generated catch block&lt;br&gt;			e.printStackTrace();&lt;br&gt;		} catch (Exception e) {&lt;br&gt;			// TODO Auto-generated catch block&lt;br&gt;			e.printStackTrace();&lt;br&gt;		}&lt;br&gt;	}&lt;br&gt;	&lt;br&gt;&lt;br&gt;	private String getCurrentDate(String format, Date d) {&lt;br&gt;		Format formatter = new SimpleDateFormat(format);&lt;br&gt;		return formatter.format(d);&lt;br&gt;	}&lt;br&gt;&lt;br&gt;	private String getFileName(String ShipperCode, String siDateTime,&lt;br&gt;			int intIndex, File pFileName) {&lt;br&gt;&lt;br&gt;			String fileName = &quot;IP026.PN_%Parent File%_%Shipper Short Code%_%SI_DATETIME(Bo variable)%.xls&quot;;&lt;br&gt;			String strInputFileName = pFileName.getName();&lt;br&gt;			String strDay = new String(strInputFileName.substring(strInputFileName.indexOf(&quot;days&quot;)-2,strInputFileName.indexOf(&quot;days&quot;)));&lt;br&gt;			String strParentFile = strInputFileName.substring(0,strInputFileName.indexOf(&quot;queries&quot;));&lt;br&gt;			if(strDay.equalsIgnoreCase(&quot;56&quot;)){&lt;br&gt;			fileName = fileName.replace(&quot;IP026.PN_%&quot;,&quot;IP027.PN_%&quot;);&lt;br&gt;			}else if(strDay.equalsIgnoreCase(&quot;70&quot;)){&lt;br&gt;			fileName = fileName.replace(&quot;IP026.PN_%&quot;,&quot;IP028.PN_%&quot;);&lt;br&gt;			}&lt;br&gt;			fileName = fileName.replace(&quot;%Parent File%&quot;, strParentFile);&lt;br&gt;			fileName = fileName.replace(&quot;%Shipper Short Code%&quot;, ShipperCode);&lt;br&gt;			Calendar cal = Calendar.getInstance();&lt;br&gt;			cal.add(Calendar.MONTH, -0);&lt;br&gt;			Date d = cal.getTime();&lt;br&gt;			String date1=getCurrentDate(&quot;yyyy-MM-dd&quot;,d);&lt;br&gt;			String time1= getCurrentDate(&quot;hh-mm-ss&quot;,d);&lt;br&gt;			fileName = fileName.replace(&quot;%SI_DATETIME(Bo variable)%&quot;,date1+&quot;-&quot;+time1);&lt;br&gt;			fileName = fileName.replace(&quot;.xls&quot;,&quot;.xls&quot;);&lt;br&gt;			return fileName;&lt;br&gt;			}&lt;br&gt;	&lt;br&gt;	@SuppressWarnings(&quot;unchecked&quot;)&lt;br&gt;	public void sendEmail(String filename,String subject, String shipperCode) throws SQLException {&lt;br&gt;		&lt;br&gt;		String from = &quot;xoserve.ipwdevtandtest@xoserve.com&quot;;&lt;br&gt;	&lt;br&gt;		String bodyText = &quot;This is a important message with attachment&quot;+&quot;n&quot;+&quot;Please do not reply to this mail as it is a system generated mail&quot;+&quot;n&quot;+&quot;Incase of attachment problems please contact BO admin at rajendra.chandrashekar@tcs.com&quot;;&lt;br&gt;		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());&lt;br&gt;			    String serverName = this.readProperty(&quot;SERVERNAME&quot;);&lt;br&gt;			    int port =Integer.valueOf( this.readProperty(&quot;PORT&quot;));&lt;br&gt;			    String user = this .readProperty(&quot;USER&quot;);&lt;br&gt;			    String password = this.readProperty(&quot;PASSWORD&quot;);&lt;br&gt;			    String SID = this.readProperty(&quot;SID&quot;);&lt;br&gt;			    String URL = &quot;jdbc:oracle:thin:@&quot; + serverName + &quot;:&quot; + port + &quot;:&quot; + SID;&lt;br&gt;			    Connection conn = DriverManager.getConnection(URL, user, password);&lt;br&gt;			   &lt;br&gt;			    PreparedStatement stat = conn.prepareStatement(&quot;SELECT EMAIL_ID FROM SHIPPER_EMAIL WHERE SHIPPER_SHORT_CODE =?&quot;);&lt;br&gt;			    stat.setString(1, shipperCode);&lt;br&gt;			    ResultSet rs = stat.executeQuery();&lt;br&gt;			&lt;br&gt;			&lt;br&gt;&lt;br&gt;&lt;br&gt;		Properties properties = new Properties();&lt;br&gt;		properties.put(&quot;mail.smtp.host&quot;, &quot;10.140.84.69&quot;);&lt;br&gt;		properties.put(&quot;mail.smtp.port&quot;, &quot;25&quot;);&lt;br&gt;		Session session = Session.getInstance( properties, null);&lt;br&gt;		&lt;br&gt;		try {&lt;br&gt;			ArrayList tolist=new ArrayList();&lt;br&gt;			while(rs.next()){&lt;br&gt;			tolist.add(rs.getString(1));&lt;br&gt;			}&lt;br&gt;&lt;br&gt;			//String[] mail = (String[]) tolist.toArray();&lt;br&gt;&lt;br&gt;			MimeMessage message = new MimeMessage(session);&lt;br&gt;			message.setFrom(new InternetAddress(from));&lt;br&gt;&lt;br&gt;			InternetAddress[] addressTo = new InternetAddress[tolist.size()];&lt;br&gt;			for (int i = 0; i &lt; tolist.size(); i++) {&lt;br&gt;			addressTo[i] = new InternetAddress((String) tolist.get(i));&lt;br&gt;			}&lt;br&gt;			message.setRecipients(Message.RecipientType.TO, addressTo);&lt;br&gt;			message.setSubject(subject);&lt;br&gt;			message.setSentDate(new Date());&lt;br&gt;&lt;br&gt;			//&lt;br&gt;			// Set the email message text.&lt;br&gt;			//&lt;br&gt;			MimeBodyPart messagePart = new MimeBodyPart();&lt;br&gt;			messagePart.setText(bodyText);&lt;br&gt;&lt;br&gt;			//&lt;br&gt;			// Set the email attachment file&lt;br&gt;			//&lt;br&gt;			MimeBodyPart attachmentPart = new MimeBodyPart();&lt;br&gt;			FileDataSource fileDataSource = new FileDataSource(filename) {&lt;br&gt;				@Override&lt;br&gt;				public String getContentType() {&lt;br&gt;					return &quot;application/octet-stream&quot;;&lt;br&gt;				}&lt;br&gt;			};&lt;br&gt;			attachmentPart.setDataHandler(new DataHandler(fileDataSource));&lt;br&gt;			attachmentPart.setFileName(subject);&lt;br&gt;&lt;br&gt;			Multipart multipart = new MimeMultipart();&lt;br&gt;			multipart.addBodyPart(messagePart);&lt;br&gt;			multipart.addBodyPart(attachmentPart);&lt;br&gt;&lt;br&gt;			message.setContent(multipart);&lt;br&gt;&lt;br&gt;			Transport.send(message);&lt;br&gt;			this.createlogfile(&quot;sent file &quot;+subject+&quot; to &quot;+ tolist +&quot; from &quot;+from+&quot; at &quot;+this.getCurrentDate(&quot;yyyy-MM-dd hh:mm:ss&quot;, Calendar.getInstance().getTime())+&quot;n&quot;);&lt;br&gt;			&lt;br&gt;			&lt;br&gt;		}catch (MessagingException e) {&lt;br&gt;			e.printStackTrace();&lt;br&gt;		}&lt;br&gt;	&lt;br&gt;	}&lt;br&gt;    &lt;br&gt;&lt;br&gt;    &lt;br&gt;}</description>
		<content:encoded><![CDATA[<p>package xl;</p>
<p>import java.io.BufferedInputStream;<br />import java.io.BufferedWriter;<br />import java.io.Closeable;<br />import java.io.File;<br />import java.io.FileInputStream;<br />import java.io.FileNotFoundException;<br />import java.io.FileOutputStream;<br />import java.io.FileWriter;<br />import java.io.IOException;<br />import java.io.InputStream;<br />import java.io.PrintStream;<br />import java.sql.Connection;<br />import java.sql.DriverManager;<br />import java.sql.PreparedStatement;<br />import java.sql.ResultSet;<br />import java.sql.SQLException;<br />import java.text.Format;<br />import java.text.SimpleDateFormat;<br />import java.util.ArrayList;<br />import java.util.Calendar;<br />import java.util.Date;<br />import java.util.Iterator;<br />import java.util.Locale;<br />import java.util.Properties;<br />import java.util.zip.ZipEntry;<br />import java.util.zip.ZipOutputStream;</p>
<p>import javax.activation.DataHandler;<br />import javax.activation.FileDataSource;<br />import javax.mail.Message;<br />import javax.mail.MessagingException;<br />import javax.mail.Multipart;<br />import javax.mail.Session;<br />import javax.mail.Transport;<br />import javax.mail.internet.InternetAddress;<br />import javax.mail.internet.MimeBodyPart;<br />import javax.mail.internet.MimeMessage;<br />import javax.mail.internet.MimeMultipart;</p>
<p>import jxl.Cell;<br />import jxl.CellType;<br />import jxl.DateCell;<br />import jxl.LabelCell;<br />import jxl.Sheet;<br />import jxl.Workbook;<br />import jxl.WorkbookSettings;<br />import jxl.read.biff.BiffException;<br />import jxl.write.DateTime;<br />import jxl.write.Label;<br />import jxl.write.WritableCellFormat;<br />import jxl.write.WritableSheet;<br />import jxl.write.WritableWorkbook;</p>
<p>import org.apache.poi.hssf.usermodel.HSSFCell;<br />import org.apache.poi.hssf.usermodel.HSSFRichTextString;<br />import org.apache.poi.hssf.usermodel.HSSFRow;<br />import org.apache.poi.hssf.usermodel.HSSFSheet;<br />import org.apache.poi.hssf.usermodel.HSSFWorkbook;<br />import org.apache.poi.poifs.filesystem.POIFSFileSystem;</p>
<p>public class ReadWriteSheet {</p>
<p>	public ReadWriteSheet(InputStream input) {<br />		// TODO Auto-generated constructor stub<br />	}</p>
<p>	public void createlogfile(String message){</p>
<p>	 try {<br />			 String name=this.readProperty(&#8220;OUTPUT_FOLDER&#8221;)+&#8221;//&#8221;+this.getCurrentDate(&#8220;MMMyyyy&#8221;, Calendar.getInstance().getTime())+&#8221;.log&#8221;;<br />			 FileWriter fstream = new FileWriter(name,true);<br />		        BufferedWriter out1 = new BufferedWriter(fstream);<br />		        out1.write(message);<br />		        out1.newLine();<br />		        //Close the output stream<br />		        out1.close();</p>
<p>		 }<br />		 catch(Exception e){//Catch exception if any<br />		      System.err.println(&#8220;Error: &#8221; + e.getMessage());<br />		    }<br />		  }</p>
<p>	public String readProperty(String strPropName)</p>
<p>	{</p>
<p>		// create an instance of properties class</p>
<p>		String strValue = &#8220;&#8221;;</p>
<p>		Properties props = new Properties();</p>
<p>		// try retrieve data from file</p>
<p>		try {</p>
<p>			File f = new File(System.getProperty(&#8220;user.dir&#8221;) + &#8220;\xl\&#8221;<br />					+ &#8220;message.properties&#8221;);<br />			props.load(new FileInputStream(f));</p>
<p>			strValue = props.getProperty(strPropName);</p>
<p>		}</p>
<p>		// catch exception in case properties file does not exist</p>
<p>		catch (IOException e)</p>
<p>		{</p>
<p>			e.printStackTrace();</p>
<p>		}</p>
<p>		return strValue;</p>
<p>	}</p>
<p>	public void createZipFile(File f, ZipOutputStream out) {</p>
<p>		final int BUFFER = 2048;</p>
<p>		try {</p>
<p>			BufferedInputStream origin = null;<br />			byte data[] = new byte[BUFFER];</p>
<p>			File [] files = f.listFiles();<br />			for (int i = 0; i &lt; files.length; i++) {<br />				if(files[i].isDirectory()){<br />					createZipFile(files[i], out);<br />					continue;<br />				}<br />				if(!files[i].toString().contains(&#8220;.xls&#8221;))<br />					continue;<br />				System.out.println(&#8220;Adding: &#8220;+files[i]);</p>
<p>				FileInputStream fi = new FileInputStream(files[i]);</p>
<p>				origin = new BufferedInputStream(fi, BUFFER);<br />				System.out.println(files[i].toString());</p>
<p>				ZipEntry entry = new ZipEntry(files[i].toString());</p>
<p>				out.putNextEntry(entry);</p>
<p>				int count;</p>
<p>				while ((count = origin.read(data, 0, BUFFER)) != -1) {<br />					System.out.println(data);<br />					System.out.println(count);<br />					out.write(data, 0, count);</p>
<p>				}</p>
<p>				origin.close();<br />				System.out.println(files[i]);<br />				this.createlogfile(&#8220;zipped the file &#8220;+files[i]+ &#8221; at&#8221; +this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime()));</p>
<p>			}</p>
<p>		} catch (Exception e) {</p>
<p>			e.printStackTrace();</p>
<p>		}</p>
<p>	}</p>
<p>	private static int searchRow(HSSFSheet s, int from) {<br />		try {<br />			for (int i = from; i &lt; s.getRows(); i++) {<br />				Cell c = s.getCellComment(0, i);<br />				if (c.getType() == CellType.LABEL) {<br />					LabelCell l = (LabelCell) c;<br />					if (&#8220;Supply Point Id&#8221;.equals(l.getString()))<br />						return i &#8211; 1;<br />				}<br />			}<br />		} catch (Exception e) {<br />			e.printStackTrace(new PrintStream(System.out));<br />		}<br />		return -1;<br />	}</p>
<p>	private void createNewWorkBook(HSSFSheet s, int pStartRow,<br />			String pSiDateTime, String pOutPath, int intIndex, File pFileName) throws Exception {<br />		LabelCell l = (LabelCell) s.getCellComment(0, pStartRow);<br />		String ShipperCode = l.getString();<br />		String filename = getFileName(ShipperCode, pSiDateTime, intIndex,pFileName);</p>
<p>		WorkbookSettings ws = new WorkbookSettings();<br />		ws.setLocale(new Locale(&#8220;en&#8221;, &#8220;EN&#8221;));<br />		WritableWorkbook workbook = Workbook.createWorkbook(new File(pOutPath, filename), ws);<br />		WritableSheet dstSheet = workbook.createSheet(&#8220;Sheet1&#8243;, 0);<br />		int dstRow = 0, srcRow = pStartRow;</p>
<p>		while (true) {<br />			Cell c = (Cell) s.getCellComment(0, srcRow);<br />			if (c.getType() == CellType.EMPTY) {<br />				break;<br />			}<br />			copyRow(s, srcRow, dstSheet, dstRow);<br />			srcRow++;<br />			dstRow++;<br />		}<br />		workbook.write();<br />		workbook.close();<br />		String strOutFolderName = this.readProperty(&#8220;OUTPUT_FOLDER&#8221;);<br />		//this.displayFromExcel(strOutFolderName+&#8221;\&#8221;+filename);<br />		//String strOutFolderName = this.readProperty(&#8220;OUTPUT_FOLDER&#8221;);<br />		this.createlogfile(&#8220;created file &#8220;+filename+&#8221;at &#8220;+this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime()));<br />		this.sendEmail(strOutFolderName+&#8221;\&#8221;+filename,filename,ShipperCode);</p>
<p>	}</p>
<p>	private static void copyRow(HSSFSheet srcSheet, int startRow,<br />			WritableSheet dstSheet, int dstRow) throws Exception {<br />		Cell[] cells = srcSheet.getRow(startRow).getCell(dstRow);<br />		for (Cell c : cells) {<br />			if (c.getType() == CellType.LABEL) {<br />				LabelCell l = (LabelCell) c;</p>
<p>				WritableCellFormat f = new WritableCellFormat(c.getCellFormat());<br />				dstSheet.addCell(new Label(c.getColumn(), dstRow,l.getString(), f));<br />			}<br />			if (c.getType() == CellType.DATE) {<br />				DateCell dt = (DateCell) c;<br />				WritableCellFormat f = new WritableCellFormat(c.getCellFormat());<br />				dstSheet.addCell(new DateTime(c.getColumn(), dstRow, dt<br />						.getDate(), f));<br />			}<br />		}<br />	}</p>
<p>	public static void main(String[] args) throws IOException {<br />		ReadWriteSheet rws = new ReadWriteSheet(null);</p>
<p>		try {<br />			rws.createlogfile(&#8220;started process at &#8220;+ rws.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime()));<br />			String strInpFolderName = rws.readProperty(&#8220;INPUT_FOLDER&#8221;);<br />			String strOutFolderName = rws.readProperty(&#8220;OUTPUT_FOLDER&#8221;);<br />			File f = new File(strInpFolderName); // here pass the directory</p>
<p>			File files[] = f.listFiles(); // this will give you a list of excel<br />			// files in the directory<br />			Calendar cal = Calendar.getInstance();<br />			Date d = cal.getTime();<br />			String fileName = rws.getCurrentDate(&#8220;ddMMyyyy&#8221;, d)+&#8221;.zip&#8221;;<br />			FileOutputStream dest = null;<br />			try {<br />				dest = new FileOutputStream(strOutFolderName<br />						+ &#8220;\&#8221; + fileName);<br />			} catch (FileNotFoundException e) {<br />				// TODO Auto-generated catch block<br />				e.printStackTrace();<br />			}</p>
<p>			ZipOutputStream out = new ZipOutputStream(dest);<br />			for (int i = 0; i &lt; files.length; i++) {<br />				if(!files[i].toString().contains(&#8220;.&#8221;))<br />					continue;<br />				rws.processWorkBook(files[i], &#8220;20090601&#8243;, strOutFolderName, i);</p>
<p>			}<br />			rws.createZipFile(f, out);</p>
<p>			out.close();<br />			rws.deleteExcelFiles(f);</p>
<p>		} catch (RuntimeException ex) {<br />			ex.printStackTrace(new PrintStream(System.out));<br />		}</p>
<p>	}</p>
<p>	private void deleteExcelFiles(File f) {<br />		File [] filelist = f.listFiles();<br />		for(int i=0;i&lt;filelist.length;i++){<br />			if(filelist[i].isDirectory()){<br />				deleteExcelFiles(filelist[i]);<br />				continue;<br />			}<br />			if(!filelist[i].toString().contains(&#8220;.xls&#8221;))<br />				continue;<br />			filelist[i].delete();<br />			this.createlogfile(&#8220;deleted files&#8221; + filelist[i] + &#8220;at&#8221;+this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime())+&#8221;n&#8221;);</p>
<p>		}</p>
<p>	}</p>
<p>	/**<br />	 * Creates multiple excel files based on shipper code in input file<br />	 * <br />	 * @param pFileName<br />	 *            input file name<br />	 * @param pSiDateTime<br />	 *            BO variable<br />	 * @param pOutPath<br />	 *            Output directory name to store generated files<br />	 */<br />	public void processWorkBook(File pFileName, String pSiDateTime,<br />			String pOutPath, int intIndex) {<br />		try {<br />			String outPath = &#8220;.&#8221;;<br />			if (pOutPath != null) {<br />				outPath = pOutPath;<br />			}<br />			/*WorkbookSettings ws = new WorkbookSettings();<br />			ws.setLocale(new Locale(&#8220;en&#8221;, &#8220;EN&#8221;));</p>
<p>			Workbook workbook = Workbook.getWorkbook(new File(pFileName.getAbsolutePath()), ws);<br />			Sheet s = workbook.getSheet(0);*/<br />			InputStream inputStream = null;</p>
<p>			HSSFWorkbook workbook = new HSSFWorkbook();<br />			inputStream = new FileInputStream (pFileName.getAbsolutePath());<br />			POIFSFileSystem fileSystem = null;<br />			fileSystem = new POIFSFileSystem (inputStream);</p>
<p>			HSSFWorkbook      workBook = new HSSFWorkbook (fileSystem);<br />			HSSFSheet         s    = workBook.getSheetAt (0);<br />			int start = 0;</p>
<p>			while ((start = searchRow(s, start + 2)) != -1) {<br />				createNewWorkBook(s, start, pSiDateTime, outPath, intIndex,pFileName);<br />			}<br />			((Closeable) workbook).close();<br />		} catch (BiffException e) {<br />			// TODO Auto-generated catch block<br />			e.printStackTrace();<br />		} catch (IOException e) {<br />			// TODO Auto-generated catch block<br />			e.printStackTrace();<br />		} catch (Exception e) {<br />			// TODO Auto-generated catch block<br />			e.printStackTrace();<br />		}<br />	}</p>
<p>	private String getCurrentDate(String format, Date d) {<br />		Format formatter = new SimpleDateFormat(format);<br />		return formatter.format(d);<br />	}</p>
<p>	private String getFileName(String ShipperCode, String siDateTime,<br />			int intIndex, File pFileName) {</p>
<p>			String fileName = &#8220;IP026.PN_%Parent File%_%Shipper Short Code%_%SI_DATETIME(Bo variable)%.xls&#8221;;<br />			String strInputFileName = pFileName.getName();<br />			String strDay = new String(strInputFileName.substring(strInputFileName.indexOf(&#8220;days&#8221;)-2,strInputFileName.indexOf(&#8220;days&#8221;)));<br />			String strParentFile = strInputFileName.substring(0,strInputFileName.indexOf(&#8220;queries&#8221;));<br />			if(strDay.equalsIgnoreCase(&#8220;56&#8243;)){<br />			fileName = fileName.replace(&#8220;IP026.PN_%&#8221;,&#8221;IP027.PN_%&#8221;);<br />			}else if(strDay.equalsIgnoreCase(&#8220;70&#8243;)){<br />			fileName = fileName.replace(&#8220;IP026.PN_%&#8221;,&#8221;IP028.PN_%&#8221;);<br />			}<br />			fileName = fileName.replace(&#8220;%Parent File%&#8221;, strParentFile);<br />			fileName = fileName.replace(&#8220;%Shipper Short Code%&#8221;, ShipperCode);<br />			Calendar cal = Calendar.getInstance();<br />			cal.add(Calendar.MONTH, -0);<br />			Date d = cal.getTime();<br />			String date1=getCurrentDate(&#8220;yyyy-MM-dd&#8221;,d);<br />			String time1= getCurrentDate(&#8220;hh-mm-ss&#8221;,d);<br />			fileName = fileName.replace(&#8220;%SI_DATETIME(Bo variable)%&#8221;,date1+&#8221;-&#8221;+time1);<br />			fileName = fileName.replace(&#8220;.xls&#8221;,&#8221;.xls&#8221;);<br />			return fileName;<br />			}</p>
<p>	@SuppressWarnings(&#8220;unchecked&#8221;)<br />	public void sendEmail(String filename,String subject, String shipperCode) throws SQLException {</p>
<p>		String from = &#8220;xoserve.ipwdevtandtest@xoserve.com&#8221;;</p>
<p>		String bodyText = &#8220;This is a important message with attachment&#8221;+&#8221;n&#8221;+&#8221;Please do not reply to this mail as it is a system generated mail&#8221;+&#8221;n&#8221;+&#8221;Incase of attachment problems please contact BO admin at <a href="mailto:rajendra.chandrashekar@tcs.com">rajendra.chandrashekar@tcs.com</a>&#8220;;<br />		DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());<br />			    String serverName = this.readProperty(&#8220;SERVERNAME&#8221;);<br />			    int port =Integer.valueOf( this.readProperty(&#8220;PORT&#8221;));<br />			    String user = this .readProperty(&#8220;USER&#8221;);<br />			    String password = this.readProperty(&#8220;PASSWORD&#8221;);<br />			    String SID = this.readProperty(&#8220;SID&#8221;);<br />			    String URL = &#8220;jdbc:oracle:thin:@&#8221; + serverName + &#8220;:&#8221; + port + &#8220;:&#8221; + SID;<br />			    Connection conn = DriverManager.getConnection(URL, user, password);</p>
<p>			    PreparedStatement stat = conn.prepareStatement(&#8220;SELECT EMAIL_ID FROM SHIPPER_EMAIL WHERE SHIPPER_SHORT_CODE =?&#8221;);<br />			    stat.setString(1, shipperCode);<br />			    ResultSet rs = stat.executeQuery();</p>
<p>		Properties properties = new Properties();<br />		properties.put(&#8220;mail.smtp.host&#8221;, &#8220;10.140.84.69&#8243;);<br />		properties.put(&#8220;mail.smtp.port&#8221;, &#8220;25&#8243;);<br />		Session session = Session.getInstance( properties, null);</p>
<p>		try {<br />			ArrayList tolist=new ArrayList();<br />			while(rs.next()){<br />			tolist.add(rs.getString(1));<br />			}</p>
<p>			//String[] mail = (String[]) tolist.toArray();</p>
<p>			MimeMessage message = new MimeMessage(session);<br />			message.setFrom(new InternetAddress(from));</p>
<p>			InternetAddress[] addressTo = new InternetAddress[tolist.size()];<br />			for (int i = 0; i &lt; tolist.size(); i++) {<br />			addressTo[i] = new InternetAddress((String) tolist.get(i));<br />			}<br />			message.setRecipients(Message.RecipientType.TO, addressTo);<br />			message.setSubject(subject);<br />			message.setSentDate(new Date());</p>
<p>			//<br />			// Set the email message text.<br />			//<br />			MimeBodyPart messagePart = new MimeBodyPart();<br />			messagePart.setText(bodyText);</p>
<p>			//<br />			// Set the email attachment file<br />			//<br />			MimeBodyPart attachmentPart = new MimeBodyPart();<br />			FileDataSource fileDataSource = new FileDataSource(filename) {<br />				@Override<br />				public String getContentType() {<br />					return &#8220;application/octet-stream&#8221;;<br />				}<br />			};<br />			attachmentPart.setDataHandler(new DataHandler(fileDataSource));<br />			attachmentPart.setFileName(subject);</p>
<p>			Multipart multipart = new MimeMultipart();<br />			multipart.addBodyPart(messagePart);<br />			multipart.addBodyPart(attachmentPart);</p>
<p>			message.setContent(multipart);</p>
<p>			Transport.send(message);<br />			this.createlogfile(&#8220;sent file &#8220;+subject+&#8221; to &#8220;+ tolist +&#8221; from &#8220;+from+&#8221; at &#8220;+this.getCurrentDate(&#8220;yyyy-MM-dd hh:mm:ss&#8221;, Calendar.getInstance().getTime())+&#8221;n&#8221;);</p>
<p>		}catch (MessagingException e) {<br />			e.printStackTrace();<br />		}</p>
<p>	}</p>
<p>}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anu</title>
		<link>http://blog.vaishaksuresh.com/2009/04/15/terminator-meets-kuch-kuch-hota-hai/comment-page-1/#comment-107</link>
		<dc:creator>anu</dc:creator>
		<pubDate>Mon, 06 Jul 2009 18:11:34 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vaishaksuresh.com/?p=75#comment-107</guid>
		<description>package sim;&lt;br&gt;&lt;br&gt;import java.io.FileOutputStream;&lt;br&gt;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFCell;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFRow;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFSheet;&lt;br&gt;import org.apache.poi.hssf.usermodel.HSSFWorkbook;&lt;br&gt;&lt;br&gt;/**&lt;br&gt;* This is a sample to create an Excel Sheet using Jakarta POI API&lt;br&gt;*&lt;br&gt;* @author Nitin Aggarwal&lt;br&gt;* @version 1.0&lt;br&gt;*/&lt;br&gt;public class Sample {&lt;br&gt;/** A place for the output Excel file to go */&lt;br&gt;public static String outputFile = &quot;D:/anu_test/excel_in_java.xls&quot;;&lt;br&gt;&lt;br&gt;public static void main(String argv[]) {&lt;br&gt;try {&lt;br&gt;// Create a New XL Document&lt;br&gt;HSSFWorkbook wb = new HSSFWorkbook();&lt;br&gt;// Make a worksheet in the XL document created&lt;br&gt;HSSFSheet sheet = wb.createSheet();&lt;br&gt;// Create row at index zero ( Top Row)&lt;br&gt;HSSFRow row = sheet.createRow((short) 0);&lt;br&gt;// Create a cell at index zero ( Top Left)&lt;br&gt;HSSFCell cell = row.createCell((short) 0);&lt;br&gt;// Lets make the cell a string type&lt;br&gt;cell.setCellType(HSSFCell.CELL_TYPE_STRING);&lt;br&gt;// Type some content&lt;br&gt;cell.setCellValue(1234567.0);&lt;br&gt;// cell.setCellValue(”This is Nitin’s Sample Code”);&lt;br&gt;// The Output file is where the xls will be created&lt;br&gt;FileOutputStream fOut = new FileOutputStream(outputFile);&lt;br&gt;// Write the XL sheet&lt;br&gt;wb.write(fOut);&lt;br&gt;fOut.flush();&lt;br&gt;// Done Deal..&lt;br&gt;fOut.close();&lt;br&gt;System.out.println(&quot;File Created ..&quot;);&lt;br&gt;&lt;br&gt;} catch (Exception e) {&lt;br&gt;System.out.println(&quot;!!BANG!! xlCreate() : &quot; + e);&lt;br&gt;}&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;}</description>
		<content:encoded><![CDATA[<p>package sim;</p>
<p>import java.io.FileOutputStream;</p>
<p>import org.apache.poi.hssf.usermodel.HSSFCell;<br />import org.apache.poi.hssf.usermodel.HSSFRow;<br />import org.apache.poi.hssf.usermodel.HSSFSheet;<br />import org.apache.poi.hssf.usermodel.HSSFWorkbook;</p>
<p>/**<br />* This is a sample to create an Excel Sheet using Jakarta POI API<br />*<br />* @author Nitin Aggarwal<br />* @version 1.0<br />*/<br />public class Sample {<br />/** A place for the output Excel file to go */<br />public static String outputFile = &#8220;D:/anu_test/excel_in_java.xls&#8221;;</p>
<p>public static void main(String argv[]) {<br />try {<br />// Create a New XL Document<br />HSSFWorkbook wb = new HSSFWorkbook();<br />// Make a worksheet in the XL document created<br />HSSFSheet sheet = wb.createSheet();<br />// Create row at index zero ( Top Row)<br />HSSFRow row = sheet.createRow((short) 0);<br />// Create a cell at index zero ( Top Left)<br />HSSFCell cell = row.createCell((short) 0);<br />// Lets make the cell a string type<br />cell.setCellType(HSSFCell.CELL_TYPE_STRING);<br />// Type some content<br />cell.setCellValue(1234567.0);<br />// cell.setCellValue(”This is Nitin’s Sample Code”);<br />// The Output file is where the xls will be created<br />FileOutputStream fOut = new FileOutputStream(outputFile);<br />// Write the XL sheet<br />wb.write(fOut);<br />fOut.flush();<br />// Done Deal..<br />fOut.close();<br />System.out.println(&#8220;File Created ..&#8221;);</p>
<p>} catch (Exception e) {<br />System.out.println(&#8220;!!BANG!! xlCreate() : &#8221; + e);<br />}</p>
<p>}</p>
<p>}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: vaishaksuresh</title>
		<link>http://blog.vaishaksuresh.com/2009/04/15/terminator-meets-kuch-kuch-hota-hai/comment-page-1/#comment-106</link>
		<dc:creator>vaishaksuresh</dc:creator>
		<pubDate>Wed, 01 Jul 2009 22:32:52 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vaishaksuresh.com/?p=75#comment-106</guid>
		<description>try {&lt;br&gt;ArrayList tolist=new ArrayList();&lt;br&gt;while(rs.next()){&lt;br&gt;tolist.add(rs.getString(1));&lt;br&gt;}&lt;br&gt;&lt;br&gt;String[] mail = (String[]) tolist.toArray();&lt;br&gt;&lt;br&gt;MimeMessage message = new MimeMessage(session);&lt;br&gt;message.setFrom(new InternetAddress(from));&lt;br&gt;&lt;br&gt;InternetAddress[] addressTo = new InternetAddress[mail.length];&lt;br&gt;for (int i = 0; i &lt; mail.length; i++) {&lt;br&gt;addressTo[i] = new InternetAddress(mail[i]);&lt;br&gt;}&lt;br&gt;message.setRecipients(Message.RecipientType.TO, addressTo);&lt;br&gt;message.setSubject(subject);&lt;br&gt;message.setSentDate(new Date());</description>
		<content:encoded><![CDATA[<p>try {<br />ArrayList tolist=new ArrayList();<br />while(rs.next()){<br />tolist.add(rs.getString(1));<br />}</p>
<p>String[] mail = (String[]) tolist.toArray();</p>
<p>MimeMessage message = new MimeMessage(session);<br />message.setFrom(new InternetAddress(from));</p>
<p>InternetAddress[] addressTo = new InternetAddress[mail.length];<br />for (int i = 0; i &lt; mail.length; i++) {<br />addressTo[i] = new InternetAddress(mail[i]);<br />}<br />message.setRecipients(Message.RecipientType.TO, addressTo);<br />message.setSubject(subject);<br />message.setSentDate(new Date());</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anu</title>
		<link>http://blog.vaishaksuresh.com/2009/04/15/terminator-meets-kuch-kuch-hota-hai/comment-page-1/#comment-105</link>
		<dc:creator>anu</dc:creator>
		<pubDate>Wed, 01 Jul 2009 22:29:01 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vaishaksuresh.com/?p=75#comment-105</guid>
		<description>try {&lt;br&gt;			ArrayList tolist=new ArrayList();&lt;br&gt;			 while(rs.next()){&lt;br&gt;				String tomail =rs.getString(1);&lt;br&gt;			tolist.add(rs.getString(1));&lt;br&gt;			 }   &lt;br&gt;			 Iterator itr = tolist.iterator(); &lt;br&gt;			 while(itr.hasNext()) {&lt;br&gt;			String[] mail = (String[]) tolist.toArray();&lt;br&gt;			 &lt;br&gt;			MimeMessage message = new MimeMessage(session);&lt;br&gt;			message.setFrom(new InternetAddress(from));&lt;br&gt;&lt;br&gt;			InternetAddress[] addressTo = new InternetAddress[mail.length];&lt;br&gt;						for (int i = 0; i &lt; mail.length; i++) {&lt;br&gt;							addressTo[i] = new InternetAddress(mail[i]);&lt;br&gt;						}&lt;br&gt;			message.setRecipients(Message.RecipientType.TO, addressTo);&lt;br&gt;			message.setSubject(subject);&lt;br&gt;			message.setSentDate(new Date());&lt;br&gt;&lt;br&gt;&lt;br&gt;the while ends before catch...</description>
		<content:encoded><![CDATA[<p>try {<br />			ArrayList tolist=new ArrayList();<br />			 while(rs.next()){<br />				String tomail =rs.getString(1);<br />			tolist.add(rs.getString(1));<br />			 }   <br />			 Iterator itr = tolist.iterator(); <br />			 while(itr.hasNext()) {<br />			String[] mail = (String[]) tolist.toArray();</p>
<p>			MimeMessage message = new MimeMessage(session);<br />			message.setFrom(new InternetAddress(from));</p>
<p>			InternetAddress[] addressTo = new InternetAddress[mail.length];<br />						for (int i = 0; i &lt; mail.length; i++) {<br />							addressTo[i] = new InternetAddress(mail[i]);<br />						}<br />			message.setRecipients(Message.RecipientType.TO, addressTo);<br />			message.setSubject(subject);<br />			message.setSentDate(new Date());</p>
<p>the while ends before catch&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anu</title>
		<link>http://blog.vaishaksuresh.com/2009/04/15/terminator-meets-kuch-kuch-hota-hai/comment-page-1/#comment-104</link>
		<dc:creator>anu</dc:creator>
		<pubDate>Wed, 01 Jul 2009 16:00:40 +0000</pubDate>
		<guid isPermaLink="false">http://blog.vaishaksuresh.com/?p=75#comment-104</guid>
		<description>DriverManager.registerDriver(&lt;br&gt;			      new oracle.jdbc.driver.OracleDriver()&lt;br&gt;			    );&lt;br&gt;			    String serverName1 = &quot;10.140.84.69&quot;;&lt;br&gt;			    int port1 = 1521;&lt;br&gt;			    String user1 = &quot;boe_admin&quot;;&lt;br&gt;			    String password1 = &quot;boe_admin&quot;;&lt;br&gt;			    String SID1 = &quot;xwsx0402_iprdv01a&quot;;&lt;br&gt;			    String URL1 = &quot;jdbc:oracle:thin:@&quot; + serverName1 + &quot;:&quot; + port1 + &quot;:&quot; + SID1;&lt;br&gt;			    Connection conn1 = DriverManager.getConnection(URL1, user1, password1);&lt;br&gt;			    String SQL1 = &quot;SELECT EMAIL_ID FROM SHIPPER_EMAIL where SHIPPER_SHORT_CODE = &#039;shipperCode&#039; &quot;;&lt;br&gt;			    Statement stat1 = conn1.createStatement();&lt;br&gt;			    ResultSet rs1 = stat1.executeQuery(SQL1);&lt;br&gt;&lt;br&gt;		try {&lt;br&gt;			&lt;br&gt;				    while (rs1.next()) {&lt;br&gt;				      System.out.println(rs1.getInt(1) +  &quot;t&quot; +rs1.getString(2) );&lt;br&gt;				      String to = rs1.getString(2);</description>
		<content:encoded><![CDATA[<p>DriverManager.registerDriver(<br />			      new oracle.jdbc.driver.OracleDriver()<br />			    );<br />			    String serverName1 = &#8220;10.140.84.69&#8243;;<br />			    int port1 = 1521;<br />			    String user1 = &#8220;boe_admin&#8221;;<br />			    String password1 = &#8220;boe_admin&#8221;;<br />			    String SID1 = &#8220;xwsx0402_iprdv01a&#8221;;<br />			    String URL1 = &#8220;jdbc:oracle:thin:@&#8221; + serverName1 + &#8220;:&#8221; + port1 + &#8220;:&#8221; + SID1;<br />			    Connection conn1 = DriverManager.getConnection(URL1, user1, password1);<br />			    String SQL1 = &#8220;SELECT EMAIL_ID FROM SHIPPER_EMAIL where SHIPPER_SHORT_CODE = &#39;shipperCode&#39; &#8220;;<br />			    Statement stat1 = conn1.createStatement();<br />			    ResultSet rs1 = stat1.executeQuery(SQL1);</p>
<p>		try {</p>
<p>				    while (rs1.next()) {<br />				      System.out.println(rs1.getInt(1) +  &#8220;t&#8221; +rs1.getString(2) );<br />				      String to = rs1.getString(2);</p>
]]></content:encoded>
	</item>
</channel>
</rss>
