Ich habe ein Excel-Buch, das für alle Geschäftsbenutzer freigegeben ist. Als Teil des Prozesses muss das Excel auf der Serverseite aktualisiert werden. Alle Benutzer haben ein Netzlaufwerk zugeordnet, das das Excel-Buch enthält. Früher haben wir das Excel auf der Client-Seite mit ActiveX-Controls aktualisiert. Nun ist das Problem, dass der Pfad für das Excel-Buch nicht auf dem Server-Rechner zugänglich ist und daher die Datei nicht gefunden Exception wirft. Gibt es eine Möglichkeit, dies zu handhaben, abgesehen von der Zuordnung des Netzlaufwerks auf dem Server-Rechner?Bearbeiten Sie eine Excel-Datei auf der Serverseite in einer Client-Server-Architektur
Es folgt der Code: public static String updateExcelFile (String filelocation, String DATAVAL, String txnId) throws IOException {
String status="";
//fileLocation = "Z:\\check.xlsx";
//FileInputStream file = new FileInputStream(new File("C:\\JXL\\Checklist OnBoarding1.1.xlsx"));
//fileLocation.rep
FileInputStream file = new FileInputStream(new File(fileLocation));
XSSFWorkbook wb = new XSSFWorkbook (file);
XSSFSheet sheet = wb.getSheetAt(0);
Row r = null;
Cell c = null;
String data[] = dataVal.split(",");
int rowCount = sheet.getPhysicalNumberOfRows();
int rowNum = rowCount;
Iterator<Row> rowInterator =sheet.iterator();
while(rowInterator.hasNext()){
r=rowInterator.next();
Iterator<Cell> cellIterator = r.cellIterator();
while(cellIterator.hasNext()){
c=cellIterator.next();
//System.out.println();
switch(c.getCellType()) {
case Cell.CELL_TYPE_NUMERIC:
System.out.print(c.getNumericCellValue() + "\t\t");
if(c.getNumericCellValue()==Integer.parseInt(txnId)){
int modRow = r.getRowNum();
System.out.println("ModRow"+modRow);
rowNum=modRow;
}
break;
case Cell.CELL_TYPE_STRING:
System.out.print(c.getStringCellValue() + "\t\t");
if(c.getStringCellValue().equals(txnId)){
int modRow = r.getRowNum();
System.out.println("ModRow"+modRow);
rowNum=modRow;
}
break;
}
}
}
if(rowNum==rowCount){
r=sheet.createRow(rowNum+1);
r=sheet.getRow(rowNum+1);
}else{
r=sheet.getRow(rowNum);
}
for(int cellNum =0; cellNum<data.length;cellNum++){
c=r.createCell(cellNum);
c.setCellValue(data[cellNum]);
}
file.close();
//FileOutputStream outFile =new FileOutputStream(new File("C:\\JXL\\Checklist OnBoarding1.1.xlsx"));
FileOutputStream outFile =new FileOutputStream(new File(fileLocation));
wb.write(outFile);
outFile.close();
status="success";
Rückgabestatus; }
Wann soll der serverseitige Prozess die Excel-Datei aktualisieren? – user2587106
@ user2587106 auf einen Klick von der Seite klicken, gibt es einen Ajax-Anruf. Zu dieser Zeit sollte Excel aktualisiert werden. – user3611601
Nun, dann senden Sie die Excel-Datei an den Server, wenn der Benutzer auf die Schaltfläche klickt. – user2587106