私は次のExcelシートを持っています
id JobId Name Dept Add Salary
101 41 Bob Editing New York $ 5000
$.ajax() メソッドから id,jobid をリクエスト パラメータとしてサーブレットに渡しています。id と jobid というリクエスト パラメータを Excel シートの内容と一致させて、Excel シートの給与セル データを取得し、それを別のテーブルに挿入したいと考えています。これを行う方法?
これが私のコードです...
FileInputStream file = new FileInputStream(fileToBeRead);
workbook = new HSSFWorkbook(file);
int jobid = Integer.ParseInt(request.getParameter("jobid"));
if (id == 101) {
// get first sheet
HSSFSheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
statement = conn.createStatement() ;
ResultSet resultset = statement.executeQuery("Select job_id,Job,Name, Deptname from Emp,Department where Department.job_id=" + jobid + " AND Emp.Id=" + id + " ");
while (resultset.next()) {
//how to match database result with excel records and save to other table
}//resultset.next() ends here...
resultset.close();
}
こうやってみる……?たとえば、id = 101とAdd = New Yorkを一致させようとしていて、給与データを取得したいというエラーが発生します。if (data[i][j].equalsIgnoreCase("101"))条件を使用する場合は機能しますが、id と Address の両方に一致させたい場合、つまりif(data[i][j].equalsIgnoreCase("101") && data [i][j+5].equalsIgnoreCase("New York"))エラーが発生します
int rowNum = sheet.getLastRowNum() + 1;
int colNum = sheet.getRow(0).getLastCellNum();
String[][] data = new String[rowNum][colNum];
// System.out.println("Row No :"+rowNum +" \nCol no:"+colNum);
for (int i = 1; i < rowNum; i++) {
Row row = sheet.getRow(i);
for (int j = 0; j < colNum; j++) {
Cell cell = row.getCell(j);
String value = null;
double price;
// int type = cell.getCellType();
value = cell.getStringCellValue();
data[i][j] = value;
if(data[i][j].equalsIgnoreCase("101") && data[i][j+4].equalsIgnoreCase("New York"))
{
Cell lastCellInRow = row.getCell(row.getLastCellNum() - 1);
System.out.println(lastCellInRow.getStringCellValue());
}
}
}