Wijmo5 FlexGrid教程(19)- 用Angular2在客户端导入导出Excel

发布时间:2016/07/27 00:07 发布者:Alice

返回博客中心

可以使用xlsx.js库来完成导入导出。仅仅使用JavaScript或是TypeScript(不是服务器端代码)实现Excel文件的导入导出。

本文就来介绍使用xlsx.js库提供基本Excel导入导出的能力。库使用jszip.js库来读取Excel文件。

FlexGridExcelImportExport

为了给Wijmo flexgrid添加客户端的导入导出功能,需要执行以下步骤

1.在script->definition文件夹下添加grid.xlsx.d.ts 和wijmo.xlsx.d.ts

2.在script->vendor文件夹下添加wijmo.xlsx.min.js 和wijmo.grid.xlsx.js

3.在HTML页面,添加引用

引用库

准备好HTML页面,在default.html的head添加如下代码:

// Wijmo excel libraries
<script src="scripts/vendor/wijmo.xlsx.js" type="text/javascript"></script>
<script src="scripts/vendor/wijmo.grid.xlsx.js" type="text/javascript"></script>
<!-- JSZip library -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.min.js"></script>

 

以下是所有用到的方法:

wijmo.grid.xlsx.FlexGridXlsxConverter.load(instanceOfGrid, {options},”FileName.xlsx”)
wijmo.grid.xlsx.FlexGridXlsxConverter.save(instanceOfGrid, {options},”FileName.xlsx”))

 

load方法实现excel文件(xlsx)和计算flexgrid。

save方法将flexgrid的实例作为输入,转换数据和格式到Excel,返回包含内容的对象给Excel文件。

定义flexgrid然后进行数据绑定,代码参考:

<wj-flex-grid #flex [itemsSource]="data">
</wj-flex-grid>

 

使用2个按钮来完成导入导入操作。

代码参考:

<input type="file" class="form-control" id="importFile" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel.sheet.macroEnabled.12" />
<button class="btn btn-default" (click)="ImportExcel()">Import</button>
<button class="btn btn-default" (click)="ExportExcel()">Export</button>

 

在component类我们获取flexgrid实例,以便能够进行导入导出。

@ViewChild("flex") flex: wijmo.grid.FlexGrid;

 

然后再component类中添加导入导出方法:

// Load function
ImportExcel(event){
        let flex = this.flex;
        let fileEle = <HTMLInputElement>$("#importFile")[0];
        wijmo.grid.xlsx.FlexGridXlsxConverter.load(this.flex, fileEle.files[0], { includeColumnHeaders: true });
    }
// Save Funciton
    ExportExcel(event){
        let flex = this.flex;
        wijmo.grid.xlsx.FlexGridXlsxConverter.save(this.flex, { includeColumnHeaders: true, includeCellStyles: false }, "FlexGrid.xlsx");
    }

 

如果对自定义导入导出兴趣,可以参考API:here.

示例:

本文的源代码请下载:

 

更多资源:

Wijmo中文官网:/developer/wijmojs

Wijmo5在线示例:/developer/wijmojscore

Wijmo5产品文档:/developer/wijmojscore

如果依然有问题,可以到我们的官方产品论坛发帖咨询:http://gcdn.grapecity.com.cn/showforum-140.html

请参考Wijmo5技术文章汇总
《wijmo5 flexgrid基础教程》系列文章
 

 


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网