Java arraylist如何从excel文件中读取DDE双值并写入数组?
我有一个excel文件,其中包含指向外部源的DDE链接。我正在尝试将这些值读入我的java应用程序 我正在使用ApachePOI库阅读excel。尝试时,出现以下错误:Java arraylist如何从excel文件中读取DDE双值并写入数组?,java,excel,apache-poi,dde,Java,Excel,Apache Poi,Dde,我有一个excel文件,其中包含指向外部源的DDE链接。我正在尝试将这些值读入我的java应用程序 我正在使用ApachePOI库阅读excel。尝试时,出现以下错误: Exception in thread "main" java.lang.IllegalStateException: Cannot get a numeric value from a text cell at org.apache.poi.hssf.usermodel.HSSFCell.typeMismatch(HSSFCe
Exception in thread "main" java.lang.IllegalStateException: Cannot get a numeric value from a text cell
at org.apache.poi.hssf.usermodel.HSSFCell.typeMismatch(HSSFCell.java:643)
at org.apache.poi.hssf.usermodel.HSSFCell.getNumericCellValue(HSSFCell.java:668)
at BasketExcelRead.run(BasketExcelRead.java:40)
at Tester.main(Tester.java:7)
我的代码是
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
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;
public class BasketExcelRead implements Runnable {
public void run() {
String inputFile = "someexcel.xls";
List<String> code = new ArrayList<String>();
List<Double> bid = new ArrayList<Double>();
List<Double> share = new ArrayList<Double>();
try {
FileInputStream file = new FileInputStream(new File(inputFile));
HSSFWorkbook workbook = new HSSFWorkbook(file);
HSSFSheet sheet = workbook.getSheetAt(0);
int ss = sheet.getPhysicalNumberOfRows();
for (int i = 0; i < ss; i++) {
HSSFRow row = sheet.getRow(i);
HSSFCell cellCode = row.getCell(0);
HSSFCell cellBid = row.getCell(7);
HSSFCell cellShare = row.getCell(9);
code.add(cellCode.getStringCellValue());
bid.add(cellBid.getNumericCellValue());
share.add(cellShare.getNumericCellValue());
}
} catch (IOException e) {
e.printStackTrace();
} finally {
System.out.println("done reading");
}
for (int i = 0; i < 30; i++) {
System.out.println(code.get(i)+" "+bid.get(i)+" "+share.get(i));
}
}
}
文本/数值冲突发生在bid.addcellBid.getNumericCellValue的单元格;
此单元格BID是excel文件中显示一些数值的DDE链接您确定该单元格中有数字文本吗?我建议您使用try-catch并查看值。您可以在此处找到解决方案-“DDE”动态数据交换和“来自Excel文件”似乎是互斥的。谢谢您。因此,try-catch有助于提取一些值,但不是所需的值。使用try-catch时,它会获取以前在关闭excel时保存的值。我认为使用try-catch可以查看excel的xml格式,以查找以前保存的DDE值。然而,它并没有给出我试图实现的现货价值。我还通过try-catch得到一个nullpointerexception