2016-11-08 6 views
0

예상대로 작동하지 않습니다. 그러나,이 코드는 새로운 엑셀을 만들고있다 하지만 마지막 열 복사. 조언을 주시기 바랍니다 (내 경우를, 그것은 7 열입니다) 나는 어디 ...이 코드로 잘못내가 <strong>"</strong> 및 <strong>'</strong>를 교체 한 후 다른에 하나의 엑셀 (.XLS)의 전체 내용을 복사 할

공용 클래스 이름 바꾸기 {

static HSSFRow row_read = null; 
static HSSFRow row_write = null; 
static Cell cell; 
static FileOutputStream output = null; 
static HSSFWorkbook workbook_read = null; 
static HSSFWorkbook workbook_write = null; 
static HSSFSheet sheet_read = null; 
static HSSFSheet sheet_write = null; 
public static void removechar() 
{ 
try{ 
FileInputStream input = new FileInputStream("inputpath//test_input.xls"); 
workbook_read = new HSSFWorkbook(input); 
sheet_read = workbook_read.getSheet("Report"); 
workbook_write = new HSSFWorkbook(); 
sheet_write = workbook_write.createSheet("Test"); 
DataFormatter formatter = new DataFormatter(); 
int rowCount = sheet_read.getLastRowNum(); 
System.out.println(rowCount); 
for(int rowNum = 0; rowNum<=rowCount; rowNum++) 
{ 
for(int cellNum = 0; cellNum<=7; cellNum++) 
{ 
//Cell cell = null; 
row_read=sheet_read.getRow(rowNum); 
row_write = sheet_write.createRow(rowNum); 
String temp = formatter.formatCellValue(row_read.getCell(cellNum)); 
//System.out.println(temp); 
String temp1 = temp.replaceAll("\'", ""); 
String temp2 = temp1.replaceAll("\"", ""); 
System.out.println(temp2); 
cell = row_write.createCell(cellNum); 
cell.setCellValue(temp2); 
} 
} 

output = new FileOutputStream("outputpath\\test_output.xls"); 
workbook_write.write(output); 

} 
catch(Exception e) 
{ 
    e.printStackTrace(); 
} 

} 
public static void main(String[] argv) throws IOException { 
    Rename.removechar(); 

} 

}

을 갈거야당신에게

답변

1

문제 다음과 같은 라인입니다 .. 감사

row_read=sheet_read.getRow(rowNum); 
row_write = sheet_write.createRow(rowNum); 

그것과 같아야 셀 루프 (for(int cellNum = 0; cellNum<=7; cellNum++))

밖에 할 필요가있다.

for (int rowNum = 0; rowNum <= rowCount; rowNum++) { 
      row_read = sheet_read.getRow(rowNum); 
      row_write = sheet_write.createRow(rowNum); 
      for (int cellNum = 0; cellNum <= 7; cellNum++) { 
       // Cell cell = null; 
String temp = formatter.formatCellValue(row_read.getCell(cellNum)); 

또한 당신은 import static Cell cell;

import HSSFCell cell;에 여기에 전체 코드 변경해야 할 수도 있습니다.

import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 

import org.apache.poi.hssf.usermodel.HSSFCell; 
import org.apache.poi.hssf.usermodel.HSSFRow; 
import org.apache.poi.hssf.usermodel.HSSFSheet; 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
import org.apache.poi.ss.usermodel.DataFormatter; 

public class Rename { 


    static HSSFRow row_read = null; 
    static HSSFRow row_write = null; 
    static HSSFCell cell; 

    static FileOutputStream output = null; 
    static HSSFWorkbook workbook_read = null; 
    static HSSFWorkbook workbook_write = null; 
    static HSSFSheet sheet_read = null; 
    static HSSFSheet sheet_write = null; 

    public static void removechar() { 
     try { 
      FileInputStream input = new FileInputStream("D://test_input.xls"); 
      workbook_read = new HSSFWorkbook(input); 
      sheet_read = workbook_read.getSheet("Report"); 
      workbook_write = new HSSFWorkbook(); 
      sheet_write = workbook_write.createSheet("Test"); 
      DataFormatter formatter = new DataFormatter(); 
      int rowCount = sheet_read.getLastRowNum(); 
      System.out.println(rowCount); 
      for (int rowNum = 0; rowNum <= rowCount; rowNum++) { 
       row_read = sheet_read.getRow(rowNum); 
       row_write = sheet_write.createRow(rowNum); 
       for (int cellNum = 0; cellNum <= 7; cellNum++) { 
        // Cell cell = null; 
        String temp = formatter.formatCellValue(row_read.getCell(cellNum)); 
        // System.out.println(temp); 
        String temp1 = temp.replaceAll("\'", ""); 
        String temp2 = temp1.replaceAll("\"", ""); 
        System.out.println(temp2); 
        cell = row_write.createCell(cellNum); 
        cell.setCellValue(temp2); 
       } 
      } 

      output = new FileOutputStream("D://test_output.xls"); 
      workbook_write.write(output); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

    } 

    public static void main(String[] argv) throws IOException { 
     Rename.removechar(); 
    } 
} 
+0

이 코드 변경은 새로운 엑셀의 첫 번째 행을 복사하는 ... :( – aman

+0

내가 대답에 전체 코드를 추가 한, 그것은 잘 작동 .. – Jobin

+0

... 그것은 감사 매력처럼 작동 ... – aman