我想用java读取excel文件。我有一些旧格式的 excel 文件(excel 95)和其他新格式的文件(excel 2007)。我目前正在使用 poi,但它无法读取旧格式的 excel 文件。所以我需要的是一个传递文件名的函数,如果格式是旧格式(BIFF5),它将返回一个布尔值,如果格式是新格式(BIFF8),则返回false。这个函数的需要是允许我使用 jxl in 来处理旧格式,而 poi 来处理新格式。
这是我的代码:
try
{
// create a new org.apache.poi.poifs.filesystem.Filesystem
POIFSFileSystem poifs = new POIFSFileSystem(fin);
w = new HSSFWorkbook(poifs);
}
catch (IOException e)
{
w = null;
throw e;
}
catch (OutOfMemoryError e) // java.lang.OutOfMemoryError:
{
w = null;
throw e;
}
catch (OldExcelFormatException e) // OldExcelFormatException
{
w = null;
System.out.println("OldExcelFormatException");
translateBIFF5();
}
private void translateBIFF5() throws IOException, CmpException
{
ArrayList<String> row = null;
try
{
jxl_w = Workbook.getWorkbook(excelFile);
}
catch (BiffException e)
{
jxl_w = null;
e.printStackTrace();
}
catch (IOException e)
{
jxl_w = null;
throw e;
}
catch (OutOfMemoryError e) // java.lang.OutOfMemoryError:
{
jxl_w = null;
throw e;
}
if (jxl_w != null)
{
try
{
for (currentSheet = 0; currentSheet < jxl_w.getNumberOfSheets(); currentSheet++)
{
jxl_sheet = jxl_w.getSheet(currentSheet);
. . . . .