javaでエクセルファイルを読みたいです。古い形式 (Excel 95) の Excel ファイルと、新しい形式 (Excel 2007) の Excel ファイルがあります。現在 poi を使用していますが、古い形式の Excel ファイルを読み取ることができません。したがって、必要なのは、フォーマットが古いフォーマット (BIFF5) の場合は true 、新しいフォーマット (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);
. . . . .