最近需要处理一些 电子表格,然后下了一个APACHE.POI.HSSF用,
看了一下说明文档,自己写了一段简单的程序,但是编译时老是告诉我(C:\test\ok\ReadHSSF.java:37: incompatible types
found : double
required: java.lang.Double
cellValue[i][j] = cell.getNumericCellValue();
^
C:\test\ok\ReadHSSF.java:41: incompatible types
found : double
required: java.lang.Double
cellValue[i][j] = (double)0;
^
2 errors)
下面是有问题的代码:import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.poifs.filesystem.*;
import java.io.IOException;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.FileInputStream;
public class ReadHSSF
{
public static void main (String args[]) throws IOException
{
int val=1;
POIFSFileSystem fs=
new POIFSFileSystem(new FileInputStream("E:/workstation/cai3.xls"));
HSSFWorkbook wb=new HSSFWorkbook(fs);
HSSFSheet sheet1 = wb.getSheetAt(0);
//HSSFRow row = sheet1.getRow(0);
//HSSFCell cell = row.getCell((short)0);
FileWriter fw = new FileWriter("hssf.txt");
PrintWriter pw = new PrintWriter(fw);
//System.out.print(cell.getStringCellValue());
Double[][] cellValue = new Double[16][48];
for(int i=0;i<16;i++)
{
for(int j=0;j<48;j++)
{
HSSFRow row = sheet1.getRow(val);
HSSFCell cell = row.getCell((short)1);
try
{
cellValue[i][j] = cell.getNumericCellValue();
}
catch(NullPointerException e)
{
cellValue[i][j] = (double)0;
}
finally
{
pw.println(cellValue[i][j].toString()+'\r');
}
val++;
}
}
fw.close();
pw.close();
}
}
看了一下说明文档,自己写了一段简单的程序,但是编译时老是告诉我(C:\test\ok\ReadHSSF.java:37: incompatible types
found : double
required: java.lang.Double
cellValue[i][j] = cell.getNumericCellValue();
^
C:\test\ok\ReadHSSF.java:41: incompatible types
found : double
required: java.lang.Double
cellValue[i][j] = (double)0;
^
2 errors)
下面是有问题的代码:import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.poifs.filesystem.*;
import java.io.IOException;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.io.FileInputStream;
public class ReadHSSF
{
public static void main (String args[]) throws IOException
{
int val=1;
POIFSFileSystem fs=
new POIFSFileSystem(new FileInputStream("E:/workstation/cai3.xls"));
HSSFWorkbook wb=new HSSFWorkbook(fs);
HSSFSheet sheet1 = wb.getSheetAt(0);
//HSSFRow row = sheet1.getRow(0);
//HSSFCell cell = row.getCell((short)0);
FileWriter fw = new FileWriter("hssf.txt");
PrintWriter pw = new PrintWriter(fw);
//System.out.print(cell.getStringCellValue());
Double[][] cellValue = new Double[16][48];
for(int i=0;i<16;i++)
{
for(int j=0;j<48;j++)
{
HSSFRow row = sheet1.getRow(val);
HSSFCell cell = row.getCell((short)1);
try
{
cellValue[i][j] = cell.getNumericCellValue();
}
catch(NullPointerException e)
{
cellValue[i][j] = (double)0;
}
finally
{
pw.println(cellValue[i][j].toString()+'\r');
}
val++;
}
}
fw.close();
pw.close();
}
}
比如说吧。如果一个cell单元的格式是CELL_TYPE_NUMERIC,就需要采用getNumericCellValue来获得cell的数据
如果是erro,那就需要用get erro的方法来获得数据.获取数据都是相对应的,当然。如果你确定你的数据是String的话。。当然可以只用getStringCellValue方法来获得..建议取数据时弄个方法来判断另注:分太少了点吧~~代码就不放了.哈哈
跟POI没什么关系
该为double[][] cellValue = new double[16][48];