2017-01-25 8 views
0

私はAndroid Devを初めて使用しています。これは初めての質問です。私はExcel形式でレポートをエクスポートしようとします。だから私はExcelファイルを作成しようとしています。ここにコードです。JSONデータをAndroidを使用してExcelに変換する方法

私は

JSONを取得し、ROWに入れ、CELL
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    TextView hwtxt = (TextView)findViewById(R.id.hw); 


    HSSFWorkbook workbook = new HSSFWorkbook(); 

    HSSFSheet firstSheet = workbook.createSheet("Sheet1"); 

    String url = "http://192.168.1.13:8090/Sanjay_API/showBalanceAmtList.php"; 

    List<NameValuePair> params = new ArrayList<>(); 
    params.add(new BasicNameValuePair("hwtxt", hwtxt.getText().toString())); 

    try { 
     JSONObject parentObject = new JSONObject(getJSONUrl(url, params)); 
     JSONArray data = parentObject.getJSONArray("balance_list"); 


     MyArrList = new ArrayList<HashMap<String, String>>(); 
     HashMap<String, String> map; 

     for(int i = 0; i < data.length(); i++){ 
      JSONObject c = data.getJSONObject(i); 

      String myVal1 = c.getString("entry_date"); 
      System.out.println(myVal1); 
     } 

    }catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    FileOutputStream fos = null; 
    try { 
     String str_path = Environment.getExternalStorageDirectory().toString(); 
     File file; 
     //String CurrentDateAndTime = java.text.DateFormat.getDateTimeInstance().format(new Date()); 
     file = new File(str_path, getString(R.string.app_name) + ".xls"); 

     fos = new FileOutputStream(file); 
     workbook.write(fos); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     if (fos != null) { 
      try { 
       fos.flush(); 
       fos.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
     Toast.makeText(MainActivity.this, "Excel Sheet Generated", Toast.LENGTH_SHORT).show(); 
    } 
} 

public String getJSONUrl(String url,List<NameValuePair> params) { 
    StringBuilder str = new StringBuilder(); 
    HttpClient client = new DefaultHttpClient(); 
    HttpPost httpPost = new HttpPost(url); 

    try { 
     httpPost.setEntity(new UrlEncodedFormEntity(params)); 
     HttpResponse response = client.execute(httpPost); 
     StatusLine statusLine = response.getStatusLine(); 
     int statusCode = statusLine.getStatusCode(); 
     if (statusCode == 200) { // Download OK 
      HttpEntity entity = response.getEntity(); 
      InputStream content = entity.getContent(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(content)); 
      String line; 
      while ((line = reader.readLine()) != null) { 
       str.append(line); 
      } 
     } else { 
      Log.e("Log", "Failed to download result.."); 
     } 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return str.toString(); 
} 

で打た午前、私はPHPを使用してAPTからの復帰であるJSONでデータを持って、私のJSONは

{ 
    "vnumber": [{ 
     "vid": "1", 
     "vnumber": "STAT01", 
     "vname": "STAT01", 
     "vyear": "2011", 
     "fcdate": "22/12/2017", 
     "insdate": "22/12/2017", 
     "perdate": "22/12/2017", 
     "gtax": "", 
     "polcer": "TEST DEMO CERTIFY" 
    }, { 
     "vid": "2", 
     "vnumber": "STAT02", 
     "vname": "STAT02", 
     "vyear": "2015", 
     "fcdate": "12/12/2012", 
     "insdate": "12/12/2012", 
     "perdate": "12/12/2012", 
     "gtax": "100", 
     "polcer": "100" 
    }] 
} 
です

SDカードでデータをExcel形式でエクスポートする方法がわかりません。

+0

http://stackoverflow.com/questions/28583343/i-want-to-extract-and-display-json-array-data-into-excel-sheet私はするつもりです応答のための – AnixPasBesoin

+0

感謝これを試してみて、@AnixPasBesoinに戻る –

答えて

1

あなたは次のことを試してください。

File csvFile = new File(directory, Utils.CSV_FILE_NAME); 

try { 
      csvFile.createNewFile(); 
      CSVWriter csvWrite = new CSVWriter(new FileWriter(csvFile)); 

      String heading[] = {"vid", "vnumber", "vname", "vyear", "fcdate", "insdate", "perdate", "gtax", "polcer"}; 
      csvWrite.writeNext(heading); 
      for (int i = 0; i < arrayList.size(); i++) { 
       YourModel model = arrayList.get(i); // You can also use JsonObject from Json array. 
       String arrStr[] = {String.valueOf(model.getVid()), String.valueOf(model.getVnumber()), model.getVname(), model.getVyear(), model.getFcdate(), model.getInsdate(), model.getPerdate(),model.getGtax(), model.getPolcer() }; 
       csvWrite.writeNext(arrStr); 
      } 
      csvWrite.close(); 
     } catch (Exception sqlEx) { 
      Log.e(TAG, sqlEx.getMessage(), sqlEx); 
     } 
+0

大丈夫だけど、このコードをどこに追加できますか? –

+0

あなたのjsonデータの応答が成功した後。 –

+0

大丈夫ですよ、私は試してみます –

関連する問題