2012-09-12 3 views
1

Je voudrais créer une feuille de calcul à partir du fichier .csv. code:Comment créer une feuille de calcul google-drive à partir d'un fichier .csv?

static void Main() 
     { 
      String CLIENT_ID = "<MY ID>"; 
      String CLIENT_SECRET = "<MY SECRET>"; 

      var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description, CLIENT_ID, CLIENT_SECRET); 
      var auth = new OAuth2Authenticator<NativeApplicationClient>(provider, GetAuthorization); 
      var service = new DriveService(auth); 

      File body = new File(); 
      body.Title = "My spread"; 
      body.Description = "A test spread"; 
      body.MimeType = "application/vnd.google-apps.spreadsheet"; 

      byte[] byteArray = System.IO.File.ReadAllBytes("spread.csv"); 
      System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray); 

      service.Files.Insert(body, stream, "application/vnd.google-apps.spreadsheet").Upload(); 
     } 

     private static IAuthorizationState GetAuthorization(NativeApplicationClient arg) 
     { 
      string[] scopes = new string[] { "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/userinfo.profile" }; 
      IAuthorizationState state = new AuthorizationState(scopes); 
      state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl); 
      Uri authUri = arg.RequestUserAuthorization(state); 

      // Request authorization from the user (by opening a browser window): 
      Process.Start(authUri.ToString()); 
      Console.Write(" Authorization Code: "); 
      string authCode = Console.ReadLine(); 
      Console.WriteLine(); 

      // Retrieve the access token by using the authorization code: 
      return arg.ProcessUserAuthorization(authCode, state); 
     } 

Après l'insertion du fichier et en cliquant sur la page google-drive (en tant que propriétaire connecté) Je reçois un message

« Nous sommes désolés La feuille de calcul à cette URL ne pouvait pas être. Vérifiez que vous avez la bonne URL et que le propriétaire de la feuille de calcul ne l'a pas supprimé "

Lorsque je change MimeType en" text/csv "et insère un fichier, après avoir cliqué dessus, je reçois un message "Aucun aperçu a disponible Cet article a été créé avec (MyApp'sName), une appli Google Drive. Téléchargez ce fichier ou utilisez une des applications que vous avez installées pour l'ouvrir. «

Je peux aussi faire un clic droit sur ce fichier (que l'on créé avec « text/csv » MimeType) et choisissez l'option » Exporter vers Google Docs " et cela me donne le résultat que je voudrais atteindre - fichier de feuille de calcul avec le contenu de mon fichier .csv.Mais cette méthode indirecte ne satify moi pleinement.Y at-il une méthode pour faire un fichier de feuille de calcul sur google drive, avec le contenu du fichier .csv direct de ma demande?

+0

une solution finale avec un échantillon de code source complet? – Kiquenet

Répondre

1

Je ne sais pas C#, mais sur la base elle reflète Java, dans la ligne

service.Fichiers.Insert (corps, flux, "application/vnd.google-apps.spreadsheet"). Upload();

vous devez insérer l'équivalent de

.setConvert (true)

aussi ...

les mimetype devraient être "text/csv"

1

J'ai trouvé la réponse :)

Comment convertir par programme un fichier dans un format Google Documents approprié:

Questions connexes