我正在尝试使用java将多个csv文件作为不同的工作表合并到一个excel工作簿中

我正在尝试使用java将多个csv文件作为不同的工作表合并到一个excel工作簿中,java,apache-poi,Java,Apache Poi,我能够使用下面的java代码为一个Excel工作簿中的文件夹中存在的不同.csv文件创建工作表,但我将所有csv文件数据都放在一个工作表中。 我无法将与原始.csv文件相同的数据获取到指定的工作表中 public class CreateExlFile22{ public static void main(String[]args){ try{ HSSFWorkbook workbook=new HSSFWorkbook(); File fol

我能够使用下面的java代码为一个Excel工作簿中的文件夹中存在的不同.csv文件创建工作表,但我将所有csv文件数据都放在一个工作表中。 我无法将与原始.csv文件相同的数据获取到指定的工作表中

public class CreateExlFile22{
     public static void main(String[]args){
    try{
           HSSFWorkbook workbook=new HSSFWorkbook();


    File folder = new File("F:/csvfiles/");
    File[] listOfFiles = folder.listFiles();

    for (File file : listOfFiles) {
        if (file.isFile()) {
     System.out.println(file.getName());




            String thisline;
            ArrayList<String> al = null;
            ArrayList<ArrayList<String>> arlist = new ArrayList<ArrayList<String>>();

            HSSFSheet sheet =  workbook.createSheet(file.getName());

            FilenameFilter filter = new FilenameFilter()
            {
                @Override public boolean accept(File dir, String name)
                {
                    return name.endsWith(".csv");
                }
            };


            File file1[]=folder.listFiles(filter);


            for(int r=0;r<file1.length;r++){
                File currentFile=file1[r];


                FileInputStream fis = new FileInputStream(currentFile);
                BufferedReader br = new BufferedReader(new InputStreamReader(fis));
                while ((thisline = br.readLine()) != null) {
                    al = new ArrayList<String>();
                    String strar[] = thisline.split(",");

                    for (int j = 0; j < strar.length; j++) {


                        al.add(strar[j]);
                    }

                    arlist.add(al);
                    //i++;

                } 

                fis.close();


                    for (int k = 0; k < arlist.size(); k++) {
                        ArrayList<String> ardata = (ArrayList<String>) arlist.get(k);
                        HSSFRow row = sheet.createRow((short) k);

                        for (int p = 0; p < ardata.size(); p++) {

                            HSSFCell cell = row.createCell((short) p);
                            cell.setCellValue(ardata.get(p).toString());
                        }
                    }

                    FileOutputStream fileOut = new FileOutputStream("F://NewWBFile.xls");
                    workbook.write(fileOut);
                    fileOut.flush();
                    fileOut.close();
                    br.close();


                    }


                    }

        }


    System.out.println("Your excel file has been generated!");

    } catch ( Exception ex ) {
        System.out.println(ex);

    }
       }
   }
公共类CreateXlfile22{
公共静态void main(字符串[]args){
试一试{
HSSFWorkbook=新的HSSFWorkbook();
文件夹=新文件(“F:/csvfiles/”;
File[]listOfFiles=folder.listFiles();
对于(文件:listOfFiles){
if(file.isFile()){
System.out.println(file.getName());
把这条线串起来;
ArrayList al=null;
ArrayList arlist=新的ArrayList();
HSSFSheet sheet=workbook.createSheet(file.getName());
FilenameFilter筛选器=新建FilenameFilter()
{
@重写公共布尔接受(文件目录,字符串名称)
{
返回名称.endsWith(“.csv”);
}
};
文件file1[]=folder.listFiles(过滤器);
对于(int r=0;r
公共类CSVXL{
公共静态void main(字符串[]args){
试一试{
文件夹=新文件(“F:/csvfiles/”;
File[]listOfFiles=folder.listFiles();
HSSFWorkbook=新的HSSFWorkbook();
对于(文件:listOfFiles){
if(file.isFile()){
把这条线串起来;
ArrayList al=null;
ArrayList arlist=新的ArrayList();
HSSFSheet sheet=workbook.createSheet(file.getName());
FileInputStream fis=新的FileInputStream(文件);
BufferedReader br=新的BufferedReader(新的InputStreamReader(fis));
而((thisline=br.readLine())!=null){
al=新的ArrayList();
字符串strar[]=thisline.split(“,”);
对于(int j=0;j
公共类CSVXL{
公共静态void main(字符串[]args){
试一试{
文件夹=新文件(“F:/csvfiles/”;
File[]listOfFiles=folder.listFiles();
HSSFWorkbook=新的HSSFWorkbook();
对于(文件:listOfFiles){
if(file.isFile()){
把这条线串起来;
ArrayList al=null;
ArrayList arlist=新的ArrayList();
HSSFSheet sheet=workbook.createSheet(file.getName());
FileInputStream fis=新的FileInputStream(文件);
BufferedReader br=新的BufferedReader(新的InputStreamReader(fis));
而((thisline=br.readLine())!=null){
al=新的ArrayList();
字符串strar[]=thisline.split(“,”);
对于(int j=0;j
公共类CSVXL{
公共静态void main(字符串[]args){
试一试{
文件夹=新文件(“F:/csvfiles/”;
File[]listOfFiles=folder.listFiles();
HSSFWorkbook=新的HSSFWorkbook();
对于(文件:listOfFiles){
if(file.isFile()){
把这条线串起来;
ArrayList al=null;
ArrayList arlist=新的ArrayList();
HSSFSheet sheet=workbook.createSheet(file.getName());
FileInputStream fis=新的FileInputStream(文件);
BufferedReader br=新的BufferedReader(新的InputStreamReader(fis));
而((thisline=br.readLine())!=null){
al=新的ArrayList();
字符串strar[]=thisline.split(“,”);
对于(int j=0;jpublic class csvxls{
     public static void main(String[]args){
    try{

    File folder = new File("F:/csvfiles/");
    File[] listOfFiles = folder.listFiles();
    HSSFWorkbook workbook=new HSSFWorkbook();

    for (File file : listOfFiles) {


        if (file.isFile()) {

            String thisline;
            ArrayList<String> al = null;
            ArrayList<ArrayList<String>> arlist = new ArrayList<ArrayList<String>>();

            HSSFSheet sheet =  workbook.createSheet(file.getName());  
                FileInputStream fis = new FileInputStream(file);
                BufferedReader br = new BufferedReader(new InputStreamReader(fis));

                while ((thisline = br.readLine()) != null) {
                    al = new ArrayList<String>();
                    String strar[] = thisline.split(",");

                    for (int j = 0; j < strar.length; j++) { 
                        for (int k = 0; k < arlist.size(); k++) {

                            ArrayList<String> ardata = (ArrayList<String>) arlist.get(k);

                            HSSFRow row = sheet.createRow((short) k);


                            for (int p = 0; p < ardata.size(); p++) {

                                HSSFCell cell = row.createCell((short) p);
                                cell.setCellValue(ardata.get(p).toString());

                            }
                        }

                        al.add(strar[j]);

                    } 

                  arlist.add(al);
                }

                fis.close();  
                FileOutputStream fileOut = new FileOutputStream("F://NewWBFile.xls");
                workbook.write(fileOut);
                fileOut.flush();
                fileOut.close();
                br.close();
        }
        }

    System.out.println("Your excel file has been generated!");

    } catch ( Exception ex ) {
        System.out.println(ex);

    }
       }
   }
public static void main(String[] args) {

    String thisline; 
    int rowCounter = 0;
    List<String> rowList = new ArrayList<String>();
    try { 

        File folder = new File("C:/poc/csvFiles/");
        File[] listOfFiles = folder.listFiles();
        HSSFWorkbook workbook = new HSSFWorkbook();
        for (File file : listOfFiles) { 
            if (file.isFile()) { 
                
                rowCounter=0;   
                rowList = new ArrayList<String>();
                HSSFSheet sheet = workbook.createSheet(file.getName());
                FileInputStream fis = new FileInputStream(file);
                BufferedReader br = new BufferedReader(new InputStreamReader(fis));
                
                while ((thisline = br.readLine()) != null) {
                    rowList.add(thisline);
                }
                for (String rowLine: rowList) {
                    HSSFRow row = sheet.createRow(rowCounter);
                    rowCounter++;
                    String rowContentArr[] = rowLine.split(",");
                    for (int p = 0; p < rowContentArr.length; p++) {
                        @SuppressWarnings("deprecation")
                        HSSFCell cell = row.createCell((short) p);
                        cell.setCellValue(rowContentArr[p]);
                    }
                } 
                fis.close();
                FileOutputStream fileOut = new FileOutputStream("C:/poc/csvFiles/NewWBFile.xls");
                workbook.write(fileOut);
                fileOut.flush();
                fileOut.close();
                br.close();
            }
        }

        System.out.println("Your excel file has been generated!");
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}