からにApache POI
データをインポートするために使用しています。(APACHE POIの初心者)excel file
database
ここでは、ユーザーがExcelシートから列を選択し、それらの列をデータベース列にマップできるようにしています。列をマッピングした後、それ以降のレコードを挿入しようとすると、次のExcel
ようにDatabase
なります。
- 値が含まれる列
NO blank
がマップされている場合、適切なデータがデータベースに挿入されます - 列に
BLANK
値がマッピングされている場合、aExcel Cell
に空白の値があると、その前の値column
が割り当てられます。
ソースコード:
FileInputStream file = new FileInputStream(new File("C:/Temp.xls"));
HSSFWorkbook workbook = new HSSFWorkbook(file); //Get the workbook instance for XLS file
HSSFSheet sheet = workbook.getSheetAt(0); //Get first sheet from the workbook
Iterator<Row> rowIterator = sheet.iterator(); //Iterate through each rows from first sheet
while (rowIterator.hasNext())
{
HSSFRow hssfRow = (HSSFRow) rowIterator.next();
Iterator<Cell> iterator = hssfRow.cellIterator();
int current = 0, next = 1;
while (iterator.hasNext())
{
HSSFCell hssfCell = (HSSFCell) iterator.next();
current = hssfCell.getColumnIndex();
for(int i=0;i<arrIndex.length;i++) //arrayIndex is array of Excel cell Indexes selected by the user
{
if(arrIndex[i] == hssfCell.getColumnIndex())
{
if(current<next)
{
//System.out.println("Condition Satisfied");
}
else
{
System.out.println( "pstmt.setString("+next+",null);");
pstmt.setString(next,null);
next = next + 1;
}
System.out.println( "pstmt.setString("+next+","+((Object)hssfCell).toString()+");");
pstmt.setString(next,((Object)hssfCell).toString());
next = next + 1;
}
}
}
pstmt.addBatch();
}
私はSOについて同様の質問を探しましたが、それでも問題を解決することはできません。
前もって感謝します..