簡體   English   中英

收到此錯誤:消息:java.lang.IllegalStateException:無法從數字單元格獲取文本值

[英]Getting this error: Message: java.lang.IllegalStateException: Cannot get a text value from a numeric cell

import com.itko.lisa.vse.stateful.model.TransientResponse;
import com.itko.lisa.vse.stateful.model.Response;
import com.itko.util.ParameterList;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.lang.String;
import org.apache.log4j.*;
import groovy.util.logging.*;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

    FileInputStream fileInputStream = new FileInputStream("C:/Softwares/LISA/CBO_CurrentBalance1/Data/BalanceReport.xlsx");  
    //FileInputStream fileInputStream = new FileInputStream("/home/lisa-user/Data/CBOPayment.xlsx");
    XSSFWorkbook workbook = new XSSFWorkbook(fileInputStream)
    XSSFSheet sheet = workbook.getSheet("Sheet1");        
    XSSFRow row;
    XSSFCell cell;
    Iterator rows = sheet.rowIterator();
    while (rows.hasNext()) {
        row = (XSSFRow) rows.next();
        Iterator cells = row.cellIterator();                  
        AccountNumber1  = testExec.getStateObject("AccountNumber1")
        AccountNumber2 = testExec.getStateObject("AccountNumber2")

        if (AccountNumber1 == cells.next().getStringCellValue()) {
           if(cells.hasNext()) {
             Balance = cells.next().getNumericCellValue();                               
             testExec.setStateValue("Balance1", Balance);                      
           }
        }

        if (AccountNumber2 == cells.next().getStringCellValue()) {
            if (cells.hasNext()) {
                Balance = cells.next().getNumericCellValue();                               
                testExec.setStateValue("Balance2", Balance);                   
            }
        } 
    }

您需要這樣的東西: 不要與命名約定混淆,因為這是我的代碼之一。 問題是

  DataFormatter fmt = new DataFormatter(); String _charges = fmt.formatCellValue(sheet.getRow(45).getCell(CellReference.convertColStringToIndex("D"))); 

您正在做的是嘗試從工作表中獲取一個數值,而該數值另存為字符串,因此您需要先將其轉換為字符串,然后才能使用它。 我粘貼的代碼不是確切的解決方案,但希望您能得到有關該解決方案的提示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM