Мне нужно сгенерировать в моем приложении GWT файл xls (сгенерированный на стороне сервера с помощью apache-poi) от клиента.Я хочу, чтобы когда пользователь нажимал на кнопку, появлялось окно выбора файла, позволяющее ему сохранить сгенерированный файл.
Для начала я создал свой сервлет:
public class DownloadServlet extends HttpServlet
{
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
// What I have to insert here?!
}
public void getXlsFile()
{
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("Datatypes in Java");
Object[][] datatypes = { { "Datatype", "Type", "Size(in bytes)" }, { "int", "Primitive", 2 }, { "float", "Primitive", 4 }, { "double", "Primitive", 8 }, { "char", "Primitive", 1 }, { "String", "Non-Primitive", "No fixed size" } };
int rowNum = 0;
for (Object[] datatype : datatypes) {
Row row = sheet.createRow(rowNum++);
int colNum = 0;
for (Object field : datatype) {
Cell cell = row.createCell(colNum++);
if( field instanceof String ) {
cell.setCellValue((String) field);
}
else if( field instanceof Integer ) {
cell.setCellValue((Integer) field);
}
}
}
try {
FileOutputStream outputStream = new FileOutputStream("MyFirstExcel.xlsx");
workbook.write(outputStream);
workbook.close();
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
Теперьвопросы:
- Как мне заполнить метод doGet?
- И как я могу вызвать этот сервлет со стороны клиента?
Обратите внимание, что клиентсторона Я не знаю путь к файлу xls, потому что я хочу создать файл xls "на лету" на стороне сервера.