2013-04-01 4 views
0

해당 열 중 하나에 파일 이름이 많은 Excel 파일이 있습니다. 내가 그 파일 이름을 읽고 destination.Can 하나를 도와 줄 수있는 동일한 생성해야 자바 코드를 작성해야합니까?엑셀 시트를 읽음으로써 파일 생성

+0

코드를 공유하십시오 ... – Biswajit

답변

0
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.util.Iterator; 

import org.apache.poi.hssf.usermodel.HSSFSheet; 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
import org.apache.poi.ss.usermodel.Cell; 
import org.apache.poi.ss.usermodel.Row; 
import org.apache.poi.ss.usermodel.Sheet; 
import org.apache.poi.ss.usermodel.Workbook; 
import org.apache.poi.xssf.usermodel.XSSFSheet; 
import org.apache.poi.xssf.usermodel.XSSFWorkbook; 

public class Test { 

    public static void main(String[] args) throws IOException { 

     try { 

      FileInputStream file = new FileInputStream(new File("C:\\test.xls")); 

      HSSFWorkbook workbook = new HSSFWorkbook(file); 
      HSSFSheet sheet = workbook.getSheetAt(0); 
      //Iterate through each rows from first sheet 
      Iterator<Row> rowIterator = sheet.iterator(); 
      while(rowIterator.hasNext()) { 
       Row row = rowIterator.next(); 

       //For each row, iterate through each columns 
       Iterator<Cell> cellIterator = row.cellIterator(); 
       while(cellIterator.hasNext()) { 

        Cell cell = cellIterator.next(); 
        System.out.print(cell.getStringCellValue() + "\t\t"); 
        FileOutputStream outFile =new FileOutputStream(new File("C:\\"+cell.getStringCellValue())); 
        workbook.write(outFile); 
       } 
       System.out.println(""); 
      } 
      file.close(); 

      /* FileOutputStream outFile =new FileOutputStream(new File("C:\\update.xls")); 
      workbook.write(outFile);*/ 
      //outFile.close(); 

     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+0

안녕하세요, 정말 도움이되었습니다. 고마워 ... :) – GanStack

0

엑셀 파일을 읽을 때 사용할 수있는 라이브러리가 있습니다. 제 경우에는 무료로 다운로드하여 프로젝트에 추가 할 수있는 Apache POI을 선택했습니다.

XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream("filename.xlsx")); 

지금 당신이 각 행을 반복하고 첫 번째 열을 읽을 수 있습니다 : 나중에 2007 또는에서 엑셀 문서의 경우,

HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream("filename.xls")); 

또는 : 당신이 그것을 추가되면, 귀하의 문서를 만들

for(Row row : workbook.getSheetAt(0)) // Go through each row in sheet 0 
    System.out.println(row.getCell(0).getStringCellValue()); 
+0

당신의 소중한 아이디어에 감사드립니다. 나는 그것을 사용할 것이다 .. .. :) – GanStack

0

공용 클래스 테스트 {

public static void main(String[] args) throws IOException { 

    try { 

     FileInputStream file = new FileInputStream(new File("D:\\sampleFileNames.xls")); 

     HSSFWorkbook workbook = new HSSFWorkbook(file); 
     FileOutputStream outFile= null; 
     HSSFSheet sheet = workbook.getSheetAt(0); 
     //Iterate through each rows from first sheet 
     Iterator<Row> rowIterator = sheet.iterator(); 
     while(rowIterator.hasNext()) { 
      Row row = rowIterator.next(); 
      //For each row, iterate through each columns 
      Iterator<Cell> cellIterator = row.cellIterator(); 
        Cell cell = cellIterator.next(); 
        File file1 = new File("D:\\Ganesh\\"+cell.getStringCellValue().toString()); 
        if(!file1.createNewFile()) { 
         System.out.println("File already exists"); 


       /* Cell cell = cellIterator.next(); 
       System.out.print(cell.getStringCellValue() + "\t\t"); 
       outFile =new FileOutputStream(new File("D:\\Ganesh\\"+cell.getStringCellValue().toString())); 
       //workbook.write(outFile); 
      System.out.println(""); 
     } 
     file.close(); 
     outFile.close(); 
     /* FileOutputStream outFile =new FileOutputStream(new File("C:\\update.xls")); 
     workbook.write(outFile);*/ 
     //outFile.close(); 


} 
     } 
     }catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
,

} }

관련 문제