Monday, 16 November 2015


import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Vector;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;

/**
 *
 * @author Ranjeet Singh
 */
public class Operations {

    private static Operations op = new Operations();

    private Operations() {
    }

    public static Operations getInstance() {
        return op;
    }

    public Vector getFilesListData(String rawFolder, String splitString, int sheetNumber) {
        try {
       
       
       
            FileFilter filter = new FileFilter() {
                @Override
                public boolean accept(File pathname) {
                    if (pathname.toString().contains(".xls")) {
                        return pathname.isFile();
                    } else {
                        return false;
                    }
                }
            };
            File f = new File(rawFolder);
            File arr1[] = f.listFiles(filter);
            jxl.Workbook wb;
            int totalRows;
            jxl.Sheet sh;
            Vector list = new Vector();

            String st;
            for (int i = 0; i < arr1.length; i++) {
                try {
                    wb = jxl.Workbook.getWorkbook(arr1[i]);
                    sh = wb.getSheet(sheetNumber);
                    totalRows = sh.getRows();
                    for (int row = 0; row < totalRows; row++) {

                        if (row == 0 && i >= 1) {
                            continue;
                        }
                        st = "";
                        for (int col = 0; col < sh.getColumns(); col++) {
                            st += splitString + sh.getCell(col, row).getContents();
                        }


                        list.add(st);
                    }

                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return list;

        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }

    public void writaData(String fileName, String sheetName, Vector list, String splitString, int bufferRows) {
        try {
            String object, arr[];
            SXSSFWorkbook wwb = new SXSSFWorkbook(bufferRows);
            Sheet wsh = wwb.createSheet();
            int row = 0;
            Row excelRow;
            System.out.println("List Size" + list.size());
            list.trimToSize();
            for (int i = 0; i < list.size(); i++) {
                excelRow = wsh.createRow(row++);
                object = list.get(i).toString();
                arr = object.split(splitString);
                for (int ii = 1; ii < arr.length; ii++) {
                    try {
                        excelRow.createCell(ii - 1).setCellValue(Long.parseLong(arr[ii]));
                    } catch (NumberFormatException ee) {
                        excelRow.createCell(ii - 1).setCellValue(arr[ii]);
                    }
                }
            }
            wwb.write(new FileOutputStream(new File(fileName)));
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    public static void main(String args[]) {
        Operations op = Operations.getInstance();
        Vector l = op.getFilesListData("Raw data/dump", "#", 0);
        op.writaData("aaa.xlsx", "Sheet1", l, "#", 1000);

    }


}

No comments:

Post a Comment