2017-01-27 3 views
1

Ich versuche, .xlsx-Dateien mithilfe der Google Drive-API zu lesen, aber nachdem ich die Datei erfolgreich geöffnet und entschieden habe, den Inhalt zu lesen, werden Müllwerte angezeigt. Ich kann die Metadaten lesen und habe überprüft, dass die richtige Datei geöffnet wurde. Hier ist, was aufgerufen wird, sobald die Datei erfolgreich gelesen wurde. Es funktioniert mit TXT-Dateien, aber ich erhalte Garbage-Werte mit allen .word, .xlsx-Dateien..xlsx mit Google Drive API lesen

private ResultCallback<DriveApi.DriveContentsResult> driveContentsCallback = 
      new ResultCallback<DriveApi.DriveContentsResult>() { 
       @Override 
       public void onResult(DriveApi.DriveContentsResult result) { 
        if (!result.getStatus().isSuccess()) { 
         Log.i(TAG, "Error while opening the file contents"); 
         return; 
        } 
        Log.i(TAG, "File contents opened"); 
        mProgressBar.setProgress(100); 

        DriveContents contents = result.getDriveContents(); 

        BufferedReader reader = new BufferedReader(new InputStreamReader(contents.getInputStream())); 
        StringBuilder builder = new StringBuilder(); 
        String line; 

        try { 
         while ((line = reader.readLine()) != null) { 
          builder.append(line); 
         } 
        } catch (Exception e) { 

        } 

        String contentsAsString = builder.toString(); 

        mTextViewContent.setText(contentsAsString); 
       } 
      }; 

Antwort

0

Mit Google Drive API wird downloading Google documents durch den Export von Dateien auf einen MIME-Typ unterstützt getan.

Aber, wenn Ihr mit Google Drive Android API, in opening the file contents

Um in der Lage zu sein, eine Datei zu lesen, Sie durch das Öffnen seiner DriveContents Ressource in DriveFile.MODE_READ_ONLY oder DriveFile.MODE_READ_WRITE Modus, je nachdem, ob Sie beginnen müssen lieber mit der InputStream oder ParcelFileDescriptor Klasse arbeiten.

Sie können die angegebenen Dokumentationen für eine detailliertere Informationen und diese GitHub post überprüfen.