我必须在excel表中找到示例字符串,因为我必须使用java更改它。我轻松地做到了。但问题来自于我必须在特定时间执行相同操作,并且每次我必须将数据复制到新工作表中。所以,如果我必须做5次,那么我的excel workbok中应该有5个工作表。
这是我的代码。
int a=1;
String match="Keval Dalsaniya";
String[] name={"Ankit","Keval","Varun","Dhaval","Nirav"};
int i;
try {
FileInputStream file = new FileInputStream(new File("D:\\Ankit\\Data\\data.xlsx"));
XSSFWorkbook workbook = new XSSFWorkbook(file);
XSSFSheet sheet = workbook.getSheetAt(0);
for(i=0;a<=name.length;i++,a++)
{
Cell cell = null;
cell = sheet.getRow(0).getCell(4);
workbook.createSheet(name[i]);
if(cell.getStringCellValue().equals(match))
cell.setCellValue(name[i]);
else
JOptionPane.showMessageDialog(null, "No match found.");
System.out.println(name[i]);
}
file.close();
FileOutputStream outFile =new FileOutputStream(new File("D:\\Ankit\\Data\\update.xlsx"));
workbook.write(outFile);
outFile.close();
}
catch (Exception e)
{
e.printStackTrace();
}
答案 0 :(得分:1)
使用
XSSFSheet newSheet = workbook.createSheet();
并将已编辑的String放入新创建的工作表中。
希望这有帮助。
修改强>
您正在创建新工作表但未使用它 请尝试以下方法。
XSSFSheet sheet = workbook.getSheetAt(0);
for (i = 0; a <= name.length; i++,a++)
{
Cell cell = null;
cell = sheet.getRow(0).getCell(4);
XSSFSheet newSheet = workbook.createSheet(name[i]);
// createRow and createCell should come to rescue here.
Cell cellInNewSheet = newSheet.getRow(0).getCell(4);
if (cell.getStringCellValue().equals(match)) {
cellInNewSheet.setCellValue(name[i]);
}
else {
JOptionPane.showMessageDialog(null, "No match found.");
}
System.out.println(name[i]);
}