从JavaScript转换表格到Excel

我需要将我的EditorGridPanel网格数据导出为ex​​cel,而无需将任何数据发送到服务器端,跨浏览器和跨平台的解决scheme,这将在ie6和ie7中工作。 任何纯粹的JavaScript解决scheme也不错!
到目前为止,我已经find了唯一的数据URI解决scheme,它是伟大的,但只支持从第8版本。 也有可能通过ActiveX组件导出,但它不是我想要的,因为它使我的应用程序依赖于Windows和MSOffice。

你能推荐我任何解决scheme吗?

您可以导出到CSV,然后将该文件导入到Excel,Open Office或Numbers?

经过一番思考后,我明白这个问题是愚蠢的,因为由于js的沙箱策略,不可能直接从js输出它。 正如我前面所说,我发现了一些部分方法来做到这一点:ActiveX导出和数据URIscheme

这是一个服务器端调用的解决scheme,但没有服务器端代码写入。

http://code.google.com/p/gwt-table-to-excel/

下面的这个类没有服务器端。

public class TableToExcel { public static final <T> void save(final CellTable<T> table, String filename) { final AnchorElement a = Document.get().createAnchorElement(); a.setHref("data:application/vnd.ms-excel;base64," + base64(table.getElement().getString())); a.setPropertyString("download", (filename.endsWith(".xls") || filename.endsWith(".xlsx")) ? filename : filename + ".xls"); Document.get().getBody().appendChild(a); Scheduler.get().scheduleEntry(new ScheduledCommand() { @Override public void execute() { click(a); a.removeFromParent(); } }); } private static native void click(Element elem) /*-{ elem.click(); }-*/; public static native String base64(String data) /*-{ return btoa(data); }-*/; }