2013-10-13 2 views
0

Я играю с jexcel libaryПрочитайте лист первенствовать в, обрабатывать его и выводить его

Я попытался закодировать небольшую программу, которая выполняет следующие действия:

  1. Почитайте xls Файл
  2. сделать некоторые computaitons в листе и записать его в другое место

общественного класса DataProcessor {

private String inputFile; 
    private String outputFile; 



private Sheet sheet; 
    private Workbook w; 

    public void setInputFile(String inputFile) { 
     this.inputFile = inputFile; 
    } 

    public void setOutputFile(String outputFile) { 
     this.outputFile = outputFile; 
    } 

    public void read() throws IOException { 
     File inputWorkbook = new File(inputFile); 
     Workbook w; 
     try { 
      w = Workbook.getWorkbook(inputWorkbook); 
      sheet = w.getSheet(0); 
     } catch (BiffException e) { 
      e.printStackTrace(); 
     } 
    } 

    @SuppressWarnings("deprecation") 
    public void write() throws IOException, WriteException { 
     File file = new File(inputFile); 
     WorkbookSettings wbSettings = new WorkbookSettings(); 

     wbSettings.setLocale(new Locale("en", "EN")); 

     WritableWorkbook workbook = Workbook.createWorkbook(file, wbSettings); 
     workbook.createSheet("Lolonator", 0); 
     workbook.createSheet("Lolonator123", 1); 
     workbook.copy(w); 

     workbook.write(); 
     workbook.close(); 
    } 

    public static void main(String[] args) throws IOException, WriteException { 
     ReadExcel test = new ReadExcel(); 
     test.setInputFile("C:/Users/Desktop/sheet1.xls"); 
     test.read(); 
     System.out.println("####################################################"); 
     System.out.println("File read!"); 

//  Write 
     System.out.println("####################################################"); 
     System.out.println("Start to write the file!"); 
     WriteExcel out = new WriteExcel(); 
     out.setOutputFile("C:/Users/Desktop/sheet2.xls"); 
     out.write(); 
     System.out.println("Please check the result file!"); 

    } 

} 

Однако это не работает. Я не получаю никакого вывода на моем листе, хотя моя программа работает без исключения до конца. Я очень ценю ваш ответ !!!

ответ

1

В вашей функции записи вы используете параметр «inputFile» в качестве параметра для конструктора файлов, но вы не инициализируете его после создания объекта out.

Так следующая строка в функции записи

File file = new File(inputFile); 

должен быть

File file = new File(outputFile); 

Также вы уверены, что вы не видите каких-либо ошибок, после выполнения этого кода. Должно быть выбрано исключение нулевого указателя.

Надеюсь, это поможет ...

+0

Thx для вашего ответа! Однако ничего не изменилось, перейдя на 'outputFile' ... – mrquad

+0

Я не могу видеть тело классов ReadExcel и WriteExcel в вашем сообщении, но разве вы не должны создавать объекты DataProcessor? Также проверьте, правильно ли создан ваш файл в вашей функции записи. –

+0

Можете ли вы окружить код, в котором вы вызываете функцию записи с помощью блока try-catch и распечатываете исключение. Это даст вам причину проблемы (файл не найден, путь не найден и т. Д.). –