2017-07-04 13 views
4

角度2のアプリケーションでJSONデータを変換して.CSVにエクスポートする機能を使用しています。以下は私の機能であり、角度2のアプリケーション (web)でうまく動作しています。私はIonic 2を使用して開発したモバイルアプリで使用しようとしたのと同じですが、モバイルアプリでは動作しません。これを行う方法はありますか?jsonオブジェクトを.csvファイルに変換する方法と、Ionic 2 + Anger 2を使って書き出す方法は?

ありがとうございます!

saveAsCSV() { 
     let sampleJson : any = [{name:'ganesh', age:'24'},{name:'ramesh', age:'24'},{name:'suresh', age:'24'}] 
     this.saveData = [];  
     let a = document.createElement("a");  
     a.setAttribute('style', 'display:none;');  
     document.body.appendChild(a);  
     let csvData = ConvertToCSV(sampleJson);  
     let blob = new Blob([csvData], { type: 'text/csv' });  
     let url= window.URL.createObjectURL(blob);  
     a.href = url;  
     a.download = 'sample.csv'; 
     a.click();  
    } 

ConvertToCSV(objArray) {  
     let array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray; 
     let str = ''; 
     let row = ""; 
     for (let index in objArray[0]) { 
      //Now convert each value to string and comma-separated 
      row += index + ','; 
     } 
     row = row.slice(0, -1); 
     //append Label row with line break 
     str += row + '\r\n'; 

     for (let i = 0; i < array.length; i++) { 
      let line = ''; 
      for (let index in array[i]) { 
       if (line != '') line += ','; 
       line += array[i][index]; 
      } 
      str += line + '\r\n'; 
     } 
     return str; 
    } 
+0

「ダウンロード」属性は、ブラウザの実行方法に関する被告です。イオンコードでファイルをダウンロードすることをお勧めします。このコードバプラグインを使用する必要があります:https://github.com/apache/cordova-plugin-file-transfer#download – misha130

答えて

2

使用 "コルドバ - プラグインファイルは、" イオン性でcsvファイルをエクスポートする2.

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/

次のエラー表示された場合 -

コード:1つのメッセージ: "NOT_FOUND_ERRを"

次のいずれかの行をconfig.xmlに追加して解決してください。

は内部 ファイルの保存場所にファイルを保存するかどうかを選択、または以前のロジックを使用して:

<preference name="AndroidPersistentFileLocation" value="Internal" /> 
<preference name="AndroidPersistentFileLocation" value="Compatibility" /> 

としては、あなたがこれら二つのオプションのいずれかを使用することができ、プラグインのマニュアルに記載されていますアプリケーションのconfig.xmlファイルには、優先度が となっています。この行がなければ、FileプラグインはInternalを デフォルトとして使用します。プリファレンスタグが存在し、これらの値のいずれでもない場合は、アプリケーションは起動しません。

アプリケーションが以前にこのプラグインの 古い(前3.0.0)のバージョンを使用して、ユーザーに出荷された、と 永続的なファイルシステムにファイルを格納している場合は、あなたが 互換性の場合に優先順位を設定する必要がありますあなたのconfig.xmlは、永続的なファイルシステム の場所を指定していません。場所を「内部」に切り替えると、アプリケーションをアップグレードする既存のユーザーが、デバイスに応じて以前に保存されたファイルにアクセスできなくなる可能性があります( )。

アプリケーションが新しく、永続ファイルシステムの にファイルを保存したことがない場合、内部設定は通常 が推奨されます。

関連する問題