java - GWT 导出表

标签 java gwt apache-poi export-to-excel export-to-csv

我是 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/

相关文章:

java - Spring Data JPA - 如何保留任何现有或不存在的嵌套对象

java - 这是有效的 HTTP get 请求吗?

java - 使用 GWT 的 GET 请求检索 XML 数据?

java - 在 GWT 中比较两个 JavaScriptObject 的最佳方法是什么?

java - 使用 poi sxssfworkbook 附加到工作簿

java - 使用 Apache POI 创建的单元格评论具有透明背景

c# - 如何在 C# 中翻译 java "?"运算符?

java - 如何将场景生成器中创建的场景加载到JavaFX应用程序主类中?

gwt - 使GWT和Grails与Atmosphere插件一起工作

java - 使用 java 从 Word 文档中读取表单复选框值