У меня есть требование, что я должен создать отчет Excel и загрузить его из приложения JS. Я хочу интегрировать индикатор выполнения Bootstrap во время этого процесса.
Как я могу интегрировать индикатор выполнения здесь.?
Пожалуйста, найдите мой код ниже.
Штрих-код BootStrap Progress:
<div class="progress">
<div class="progress-bar" role="progressbar" aria-valuenow="" aria-
valuemin="0" aria-valuemax="100" style="width: 60%;">
</div>
</div>
Код ReactJS (SuperAgent) для создания листа Excel и его загрузки.
handleInvoice(e)
{
e.preventDefault()
var item = this.state.item;
var lines = item.order;
var request = require('superagent');
var apiBaseUrl = "api/Invoice";
var req = request.get(apiBaseUrl);
req.query({ item : item.id})
req.end(function(err,res){
if(err){
alert(" error"+err);
confirmAlert({
message: 'Invoice is not prepared properly.....',
confirmLabel: 'Ok',
});
}
else{
window.location= 'api/Invoice?item=' + item.id,'';
element.click();
}
});
}
Код ReactJS Botton для вызова метода handleInvoice():
return ( <button type="submit" className="btn btn-primary" onClick={
this.handleInvoice } > Invoice </button> );
Пожалуйста, найдите мой код сервлета:
try {
String reportname = "Invoice";
resp.setContentType("application/vnd.ms-excel");
resp.setHeader("Content-Disposition", "attachment; filename=" +
reportname + ".xls");
HSSFWorkbook workbook1=service.getCommercialInvoiceService(id);
ByteArrayOutputStream outByteStream = new ByteArrayOutputStream();
workbook1.write(outByteStream);
byte [] outArray = outByteStream.toByteArray();
int fileSize=outArray.length;
outStream = resp.getOutputStream();
outStream.write(outArray);
outStream.flush();
outStream.close();
resp.setHeader("Content-Length", ""+fileSize);
System.out.println("File Size"+fileSize);
} catch (IOException ioe) {
throw new ServletException(ioe);
}
Пожалуйста, найдите мой код сервлета, где я получаю размер файла и также устанавливаю его в заголовок ответа.