我是 GWT 新手,正在开发一个使用 GWT 生成表单的项目。在此表单中,我在垂直面板中添加了一个表格。现在我想以 Excel 或 CSV 格式导出该表。想知道是否有人可以帮助我解决这个问题。
这是入口点类的示例代码:
public class ItemListEditor implements EntryPoint
{
private final Button addRow = new Button("Add Row");
private final Button save = new Button("Save");
private final Button next = new Button("Next");
private final Button upload = new Button("Upload");
private final Button export = new Button("Export");
private ItemTable table = null;
}
同样,我的问题只是导出该表 - 就像单击导出按钮时,系统会询问位置。 如果需要,我可以提供更多信息。 请帮忙解决这个问题
最佳答案
创建一个 HTTPServlet
类,在 servlet 的 doGet()
方法中使用 Apache Poi jar 创建一个 HSSFWorbook
,写入数据在工作表中,将工作簿写入 servlet
的响应部分。
在 web.xml 文件中映射 servlet,最后在按钮处理程序中使用此 servlet url。
已编辑----->
button.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent arg0) {
exlGenerationServiceAsync.excelReportObjects(new AsyncCallback() {
@Override
public void onFailure(Throwable arg0) {
arg0.printStackTrace();
}
@Override
public void onSuccess(Object arg0) {
Window.open(GWT.getModuleBaseURL() + "url", "", "");
}
});
}
}
web.xml 文件内的 Servlet 映射----->
<servlet>
<servlet-name>excelFile</servlet-name>
<servlet-class>com.company.server.excelFileServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>excelFile</servlet-name>
<url-pattern>/yourUrl</url-pattern>
</servlet-mapping>
其中 excelFileServlet 是我的 servlet 类。
Servlet类内部---->
File file = new File("Path Where you want to write your excel file");
response.setContentType("application/vnd.ms-excel");
response.addHeader("Content-Disposition", "attachment; filename=" + "Excel_Report_Name.xls");
response.setContentLength((int) file.length());
FileInputStream fileInputStream = new FileInputStream(file);
try{
OutputStream responseOutputStream = response.getOutputStream();
int bytes;
while ((bytes = fileInputStream.read()) != -1) {
responseOutputStream.write(bytes);
}
responseOutputStream.close();
}catch(Exception e){
e.printStackTrace();
System.err.println("Inside Try/catch");
关于java - GWT 导出表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27727352/