2015-11-21 1 views
-1

Я пытаюсь записать данные с сайта на excel, но в моем методе данных записи я получаю 10 нулевых значений вместо фактических значений.Не уверен Что мне недостает? Получение данных null

код здесь:

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
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.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 

public class Retrieve { 

    public static WebDriver driver; 
    public static int rowcount=0; 
    public static int cellcount=0; 

    public static String T1,T2,T3,T4,T5,T6,T7,T8,T9,T10; 
    public static String data[] = new String[10]; 

    public static void main(String[] args) throws IOException { 
    openurl(); 
    write_data(); 
    } 

    public static void openurl() {  

    System.setProperty("webdriver.chrome.driver", "E:\\Selenium-Webdriver\\Chrome_Driver\\chromedriver.exe"); 
    driver = new ChromeDriver(); 

    driver.get(URL); 

    T1 = driver.findElement(By.xpath("//*[@id='wpv-view-layout-34546-CPID79']/table/tbody/tr[1]/td[2]/a/b")).getText(); 
    T2 = driver.findElement(By.xpath("//*[@id='wpv-view-layout-34546-CPID79']/table/tbody/tr[2]/td[2]/a/b")).getText(); 
    T3 = driver.findElement(By.xpath("//*[@id='wpv-view-layout-34546-CPID79']/table/tbody/tr[3]/td[2]/a/b")).getText(); 
    T4 = driver.findElement(By.xpath("//*[@id='wpv-view-layout-34546-CPID79']/table/tbody/tr[4]/td[2]/a/b")).getText(); 
    T5 = driver.findElement(By.xpath("//*[@id='wpv-view-layout-34546-CPID79']/table/tbody/tr[5]/td[2]/a/b")).getText(); 
    T6 = driver.findElement(By.xpath("//*[@id='wpv-view-layout-34546-CPID79']/table/tbody/tr[6]/td[2]/a/b")).getText(); 
    T7 = driver.findElement(By.xpath("//*[@id='wpv-view-layout-34546-CPID79']/table/tbody/tr[7]/td[2]/a/b")).getText(); 
    T8 = driver.findElement(By.xpath("//*[@id='wpv-view-layout-34546-CPID79']/table/tbody/tr[8]/td[2]/a/b")).getText(); 
    T9 = driver.findElement(By.xpath("//*[@id='wpv-view-layout-34546-CPID79']/table/tbody/tr[9]/td[2]/a/b")).getText(); 
    T10 = driver.findElement(By.xpath("//*[@id='wpv-view-layout-34546-CPID79']/table/tbody/tr[10]/td[2]/a/b")).getText(); 
    } 

    public static void write_data() throws IOException { 
    File file = new File("C:\\Users\\Documents\\Practice.xls"); 
    FileInputStream inputStream = new FileInputStream(file); 

    Workbook MyWorkbook = null; 
    MyWorkbook = new HSSFWorkbook(inputStream); 

    Sheet sheet = MyWorkbook.getSheet("sheet1"); 

    Row row = sheet.getRow(0); 

    try { 
     int lendgth = data.length; 
     for(int i = 0;i < data.length;i++) { 
     Row newrow = sheet.createRow(rowcount+1); 
     Cell cell = newrow.createCell(cellcount); 

     if(!data[i].equals("") || data[i].equals(null)) { 
      cell.setCellValue(data[i]); 
      rowcount++;  
     }  
     } 
    }catch(Exception E) { 
     E.printStackTrace();  
    } 
    inputStream.close();  
    FileOutputStream outputStream = new FileOutputStream(file); 

    MyWorkbook.write(outputStream); 
    outputStream.close(); 
    } 
} 

Я получаю все нулевые данные по адресу: if(!data[i].equals("") || data[i].equals(null)) и получение NullPointerException.

+2

Ну ... Вы никогда не инициализировать 'data' элементы, поэтому все они «null». Возможно, вы не хотели делать 'T1 = ...; T2 = ...; ', но вместо этого вы хотели сделать' data [0] = ...; данные [1] = ...; '? – Seelenvirtuose

+0

Ох, я .. Ты прав, человек .. Большое спасибо .. –

ответ

2

У вас есть:

public static String data[] = new String[10]; 

но не назначены никакие значения к нему, все элементы инициализируются null.

data содержит:

[null, null, null, null, null, null, null, null, null, null] 

Вам необходимо присвоить значения T1, T2, .... к data[]

Вобще:

data[0] = T1; 
data[1] = T2; 
.... 
+0

Да, приятель, Это была моя глупая ошибка, но не уверен, почему я забыл инициализировать. Спасибо за быструю помощь .. :) –

Смежные вопросы