`

GWT 调用本地js 导出excel

    博客分类:
  • GWT
阅读更多

刚做的用GWT调用本地js导出excel , 导出的excel有点难看, 但总比没有导出功能好!

第一步: 编写本地js放到public/js/file/FileExport.js目录下:

//导入Excel


 function ExportToExcel(element)
{
 var oXL = new ActiveXObject("Excel.Application");
 var oWB = oXL.Workbooks.Add();
 var oSheet = oWB.ActiveSheet;
 var sel=document.body.createTextRange();
 sel.moveToElementText(element);
 sel.select();
 sel.execCommand("Copy");
 oSheet.Paste();
 oXL.Visible = true;
}

//导入Word  
function ExportToWord(element)
{
 var oWD = new ActiveXObject("Word.Application");
 var oDC = oWD.Documents.Add("",0,1);
 var oRange =oDC.Range(0,1);
 var sel = document.body.createTextRange();
 sel.moveToElementText(element);
 sel.select();
 sel.execCommand("Copy");
 oRange.Paste();
 oWD.Application.Visible = true;
}


第二步: 编写JSNI实现类来调用js
package com.gogocode.bi.client;

import com.google.gwt.user.client.Element;
/**  
 * JSNI实现类调用js
 * @author 赵昌峻
 *
 */

public class FileExport {

public static native void ExportToExcel(Element element) /*-{
 $wnd.ExportToExcel(element);  
}-*/;

public static native void ExportToWord(Element element) /*-{
 $wnd.ExportToWord(element);
 }-*/;
}


第三步: 在程序中调用JSNI实现类
package com.gogocode.bi.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.RootPanel;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.data.ArrayReader;
import com.gwtext.client.data.DateFieldDef;
import com.gwtext.client.data.FieldDef;
import com.gwtext.client.data.FloatFieldDef;
import com.gwtext.client.data.MemoryProxy;
import com.gwtext.client.data.RecordDef;
import com.gwtext.client.data.Store;
import com.gwtext.client.data.StringFieldDef;
import com.gwtext.client.widgets.Button;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.Toolbar;
import com.gwtext.client.widgets.ToolbarButton;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.grid.ColumnConfig;
import com.gwtext.client.widgets.grid.ColumnModel;
import com.gwtext.client.widgets.grid.GridPanel;

/**

 * GWT 调用本地js 导出excel 示例程序  
 * @author 赵昌峻  
 *
 */
public class BI_Enter implements EntryPoint {

 public void onModuleLoad() {
  Panel panel = new Panel();
  panel.setBorder(false);
  panel.setPaddings(15);
 
  RecordDef recordDef = new RecordDef(
  new FieldDef[]{
  new StringFieldDef("company"),
  new FloatFieldDef("price"),
  new FloatFieldDef("change"),
  new FloatFieldDef("pctChange"),
  new DateFieldDef("lastChanged", "n/j h:ia"),
  new StringFieldDef("symbol"),
  new StringFieldDef("industry")
 }
 );


 final GridPanel grid = new GridPanel();
 grid.setId("grid"); //给要导出的表格一个维一的ID  
 Object[][] data = getCompanyData();
 MemoryProxy proxy = new MemoryProxy(data);
 ArrayReader reader = new ArrayReader(recordDef);
 Store store = new Store(proxy, reader);
 store.load();
 grid.setStore(store);

 

 ColumnConfig[] columns = new ColumnConfig[]{
  new ColumnConfig("股票", "company", 130, true, null, "company"),
  new ColumnConfig("价格", "price", 35),
  new ColumnConfig("涨跌", "change", 45),
  new ColumnConfig("涨幅", "pctChange", 65),
  new ColumnConfig("最后更新时间", "lastChanged", 100)};
 
 ColumnModel columnModel = new ColumnModel(columns);
 grid.setColumnModel(columnModel);
 grid.setFrame(true);
 grid.setStripeRows(true);
 grid.setAutoExpandColumn("company");
 grid.setHeight(350);
 grid.setWidth(600);
 grid.setTitle("今日股市情况");

 Toolbar bottomToolbar = new Toolbar();
 bottomToolbar.addFill();
 bottomToolbar.addButton(new ToolbarButton("导出到Excel", new ButtonListenerAdapter() {
  public void onClick(Button button, EventObject e) {
   FileExport.ExportToExcel(DOM.getElementById("grid"));  //调用本地js导出excel
   grid.clearSortState(true);
  }
 }));
 grid.setBottomToolbar(bottomToolbar);
 panel.add(grid);
 RootPanel.get().add(panel);
 }
}

分享到:
评论

相关推荐

    gwt 练习 gwt学习

    2. **模块化(GWT Module)**:每个GWT项目都始于一个`.gwt.xml`模块文件,它定义了项目的配置信息,包括使用的库、本地化设置、主题等。 3. **Java到JavaScript编译**:GWT的编译过程将Java源代码转化为优化的...

    GWT开发环境JAVA

    Google Web Toolkit(GWT)是一个开放源代码的Java框架,它允许开发者使用Java语言来编写富互联网应用程序(Rich Internet Applications,RIA),并将其编译成优化的JavaScript代码,从而在浏览器中运行。GWT的主要...

    GWT入门 GWT中文教程

    “GWT入门”和“GWT中文教程”显然是针对初学者的,它们可能从最基础的GWT安装、项目配置开始,逐步讲解GWT的核心概念,如UI设计(Widget系统)、事件处理、数据模型和服务器通信(RPC机制)、本地存储、国际化等。...

    GWT Demo,GWT学习时的一些小例子

    4. **国际化与本地化**:GWT 提供了强大的国际化支持,使得开发者可以轻松地为应用程序添加多语言版本,满足全球用户的需求。 5. **模块化**:GWT 应用程序由一系列模块组成,每个模块包含特定的功能。这种模块化...

    GWT

    7. **国际化与本地化**:GWT支持多语言,允许开发者轻松地为不同地区和语言的用户提供服务。 8. **丰富的UI组件**:GWT提供了大量的预构建UI组件,如按钮、表单、表格等,这些组件可以方便地进行定制和组合。 9. *...

    gwt揭秘源代码

    3. **异步编程模型**:通过GWT的异步服务调用(RPC),开发者可以方便地实现客户端与服务器的数据交换。 4. **强大的开发环境**:GWT提供集成开发环境(IDE)插件,如Eclipse和IntelliJ IDEA,支持代码提示、调试和...

    GWTDemo

    5. **异步通信 - RPC (Remote Procedure Call)**: GWT 提供了RPC机制,使得客户端可以直接调用服务器端的方法,处理数据和服务端逻辑。GWTDemo可能包含了与服务器交互的示例。 6. **本地存储**: GWT 支持本地存储,...

    GWT快速开发(GWT) 是一个Java软件开发框架用于开发类似于Google Maps和Gmail的AJAX应用程序。GWT的设计参考Java AWT包设计,类命名规则、接口设计、事件监听等。你可以用Java编程语言开发你的界面,然后用GWT编译器将Java类转换成适合浏览器执行的...

    - GWT支持通过远程过程调用(Remote Procedure Call, RPC)机制与服务器端进行通信。 - 开发者可以通过定义服务接口并实现相应的服务端逻辑,实现前后端的数据交换。 #### 四、GWT实战案例 - **案例1: Hello GWT...

    GWT 开发和部署文档

    GWT的编译器会将这些Java代码转换为优化过的JavaScript,同时提供了宿主模式(Host Mode)的本地开发和调试环境,允许开发者在不部署到服务器的情况下测试应用。 6. **调试与测试**:GWT提供了一个内置的Servlet...

    GWT安装和使用

    在这种情况下,GWT 支持 JavaScript Native Interface (JSNI),允许开发者直接在 Java 代码中嵌入 JavaScript 代码。这种机制为开发者提供了极大的灵活性,使其能够在需要时使用原生 JavaScript 功能。 #### 二、用...

    GWT快速开发.pdf

    - **跨浏览器兼容性**:GWT能够自动生成针对不同浏览器优化的JavaScript代码,确保应用在各种浏览器环境下都能正常工作。 - **强大的用户界面组件库**:提供了丰富的UI组件,如Button、Label等,方便快速构建用户...

    gwtext编写的小系统

    1. **GWT的基本使用**:包括模块定义、事件处理、异步RPC调用、本地存储等。 2. **EXT GWT组件**:例如,使用Grid面板展示数据,TreePanel实现层级结构,FormPanel进行表单数据输入等。 3. **数据绑定**:GWText可能...

    gwt教程

    3. **本地化**:GWT支持多语言本地化,允许开发者轻松地创建不同语言版本的应用程序。 4. **事件驱动**:GWT采用与桌面应用类似的事件驱动模型,使得用户交互更直观。 ## GWT的主要特性 1. **跨浏览器兼容**:GWT...

    java整合GWT实现导出数据到已有的PDF模板中

    JAVA整合GWT框架,利用ITEXT插件,实现从SQL2008中导出数据到已有的模板中。资源里附有PDF模板,构建PDF模板的WORD文件,以及PDF模板所要做成PDF文件的图片式样。该资源还实现了导出SQL2008某行某列的数据到PDF模板...

    GWT-EXT2.0最佳实践教程,源代码打包供下载

    2. **EXT-JS集成**:学习如何将EXT-JS库引入到GWT项目中,理解两者的交互方式,以及如何在GWT中调用EXT-JS的组件。 3. **异步通信(GWT-RPC)**:掌握GWT中的远程过程调用(RPC)机制,实现客户端和服务器端的数据...

    GWT中的xmlHttpRequest

    使用GWT RPC,你可以直接调用服务器上的方法,就像它们是本地方法一样。 例如,创建一个服务接口: ```java public interface MyService extends RemoteService { String getData(); } ``` 然后在服务器端实现这...

    GWT入门及用例文档

    9. **自动RPC服务**:GWT的Remote Procedure Call (RPC)机制能自动处理Java对象与服务器端的通信,简化服务调用。 总之,GWT通过将Java与Ajax相结合,降低了开发复杂性,提高了开发速度,同时也确保了应用的质量和...

    gwt入门-gwt从这里开始

    GWT 的核心部分是其编译器,它能够将 Java 代码转换为浏览器可执行的 JavaScript。这使得开发者可以利用 Java 的强大功能和成熟的开发工具,同时享受 JavaScript 在 web 开发中的灵活性。 2. **Hosted Model 和 ...

Global site tag (gtag.js) - Google Analytics