Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从excel获取输入并使用java将数据传递到bat文件_Java_Excel_Batch File - Fatal编程技术网

从excel获取输入并使用java将数据传递到bat文件

从excel获取输入并使用java将数据传递到bat文件,java,excel,batch-file,Java,Excel,Batch File,我想从excel中读取数据,并使用java将这些数据传递到批处理文件 test.bat echo%id% # Excel文件 1234 我们如何从excel文件中检索数据,并使用java将这些数据传递到bat文件 谁能回答这个问题 您可以使用以下代码从excel工作表中读取数据,然后将其写入另一个文件 try { InputStream input = new BufferedInputStream( new Fi

我想从excel中读取数据,并使用java将这些数据传递到批处理文件

test.bat
echo%id%

# Excel文件 1234

我们如何从excel文件中检索数据,并使用java将这些数据传递到bat文件
谁能回答这个问题

您可以使用以下代码从excel工作表中读取数据,然后将其写入另一个文件

   try {

             InputStream input = new BufferedInputStream(
                        new FileInputStream("C:/MyWorkSpace/Temp/poi-test.xls"));
            POIFSFileSystem fs = new POIFSFileSystem( input );
            HSSFWorkbook wb = new HSSFWorkbook(fs);
            HSSFSheet sheet = wb.getSheetAt(0); //sheet of excel

            File file = new File("writedatasamp.txt");  
            writer = new BufferedWriter(new FileWriter(file));
            Iterator rows = sheet.rowIterator(); 
            while( rows.hasNext() ) {   
                HSSFRow row = (HSSFRow) rows.next();
                System.out.println("\n");
                Iterator cells = row.cellIterator();

                   writer.write("insert into Emp values(");
                while( cells.hasNext() ) {

                    HSSFCell cell = (HSSFCell) cells.next();
                    if(HSSFCell.CELL_TYPE_NUMERIC==cell.getCellType()) {
                    System.out.print( cell.getNumericCellValue()+"     "+cell.getColumnIndex() );
                    if(cell.getColumnIndex()==3)
                  writer.write(String.valueOf(cell.getNumericCellValue()));
                    else
                     writer.write(String.valueOf(cell.getNumericCellValue()+","));
                    }
                    else
                    if(HSSFCell.CELL_TYPE_STRING==cell.getCellType()) {
                        System.out.print( cell.getStringCellValue()+"     " );
                        writer.write("'"+cell.getStringCellValue()+"',");
                    }
                    else
                        if(HSSFCell.CELL_TYPE_BOOLEAN==cell.getCellType()) {
                        System.out.print( cell.getBooleanCellValue()+"     " );
                       writer.write("'"+String.valueOf(cell.getBooleanCellValue()+"',"));
                        }
                        else
                            if(HSSFCell.CELL_TYPE_BLANK==cell.getCellType())
                                System.out.print( "BLANK     " );
                                else
                            System.out.print("Unknown cell type");


                }

                writer.write(");"+"\n"); 
            }


        } catch ( IOException ex ) {
            ex.printStackTrace();
        } finally {             try {                 if (writer != null) {                     writer.close();                 }             } catch (IOException e) {                 e.printStackTrace();             }         }
    }

如果你想用excel文件做任何事情,你应该使用ApachePOI。伟大的图书馆,使用方便

欢迎使用StackOverflow,请阅读上的指南,以便更好地理解您的问题并为您提供更好的答案。如何将这些值传递到bat文件。bat文件应该从excel工作表中逐个获取值。您将在此处逐个单元格获取值。仅尝试使用逻辑写入bat文件内部,而使用上述逻辑,我可以将参数传递到bat文件中。我的bat文件有一些工作。例如。。你必须给出是或否,或者一些名字,或者多次这样输入。。因此,我将在excel表中提供所有信息,它必须逐个传递数据并按enter键。
   try {

             InputStream input = new BufferedInputStream(
                        new FileInputStream("C:/MyWorkSpace/Temp/poi-test.xls"));
            POIFSFileSystem fs = new POIFSFileSystem( input );
            HSSFWorkbook wb = new HSSFWorkbook(fs);
            HSSFSheet sheet = wb.getSheetAt(0); //sheet of excel

            File file = new File("writedatasamp.txt");  
            writer = new BufferedWriter(new FileWriter(file));
            Iterator rows = sheet.rowIterator(); 
            while( rows.hasNext() ) {   
                HSSFRow row = (HSSFRow) rows.next();
                System.out.println("\n");
                Iterator cells = row.cellIterator();

                   writer.write("insert into Emp values(");
                while( cells.hasNext() ) {

                    HSSFCell cell = (HSSFCell) cells.next();
                    if(HSSFCell.CELL_TYPE_NUMERIC==cell.getCellType()) {
                    System.out.print( cell.getNumericCellValue()+"     "+cell.getColumnIndex() );
                    if(cell.getColumnIndex()==3)
                  writer.write(String.valueOf(cell.getNumericCellValue()));
                    else
                     writer.write(String.valueOf(cell.getNumericCellValue()+","));
                    }
                    else
                    if(HSSFCell.CELL_TYPE_STRING==cell.getCellType()) {
                        System.out.print( cell.getStringCellValue()+"     " );
                        writer.write("'"+cell.getStringCellValue()+"',");
                    }
                    else
                        if(HSSFCell.CELL_TYPE_BOOLEAN==cell.getCellType()) {
                        System.out.print( cell.getBooleanCellValue()+"     " );
                       writer.write("'"+String.valueOf(cell.getBooleanCellValue()+"',"));
                        }
                        else
                            if(HSSFCell.CELL_TYPE_BLANK==cell.getCellType())
                                System.out.print( "BLANK     " );
                                else
                            System.out.print("Unknown cell type");


                }

                writer.write(");"+"\n"); 
            }


        } catch ( IOException ex ) {
            ex.printStackTrace();
        } finally {             try {                 if (writer != null) {                     writer.close();                 }             } catch (IOException e) {                 e.printStackTrace();             }         }
    }