【问题标题】:probelm in downloading .xlsx file from Cordova android app从 Cordova android 应用程序下载 .xlsx 文件时出现问题
【发布时间】:2020-01-02 13:16:56
【问题描述】:

我在 Angular 8 项目中工作。我有一个组件可以处理一些数据并使用 XLSX.WorkSheet 方法将这些数据导出到 excel 中。当我在浏览器中运行我的应用程序时,它会成功下载 EXCEL 文件(.xlsx)。

现在我正在将我的 Angular 8 应用程序转换为 Cordova android,所有功能都与我的 Angular 应用程序的浏览器视图相同,但是当我尝试导出 EXCEL 时,文件不会下载。

这里我展示了一些用于导出 Excel 数据的 Angular 项目代码,如下所示。

import { ExportAsService, ExportAsConfig, SupportedExtensions } from 'ngx-export-as';
import * as XLSX from 'xlsx';
constructor(private exportAsService: ExportAsService) {}

public exportExcel(jsonData: any[], fileName: string): void {
    const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(jsonData);
    const wb: XLSX.WorkBook = { Sheets: { 'data': ws }, SheetNames: ['data'] };
    const excelBuffer: any = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });
    var out = XLSX.write(wb, { type: 'base64' });
    var xlsContent = 'data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,' + out;
    this.exportAsService.downloadFromDataURL(fileName, xlsContent);    
}

使用上面的代码,我可以在浏览器中单击 Angular 8 应用程序中的 Excel 按钮时下载 excel 文件。如下图所示

我希望在 Android .APK(Cordova) 中具有相同的行为

【问题讨论】:

    标签: angular cordova cordova-plugins


    【解决方案1】:
    this.file.writeFile(this.file.dataDirectory, 'filename.xls', data, { replace: true }).then(fileEntry => {
          // Open the xls with the correct OS tools
          this.fileOpener.open(this.file.dataDirectory + 'filename.xls', 'application/vnd.ms-excel');
        })
    

    只需将上述代码添加到您的服务中,xls 就会下载到 app.js 中。它适用于安卓应用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-07
      • 1970-01-01
      • 2021-05-08
      相关资源
      最近更新 更多