2017-08-18 18 views
0

誰でもdocx、xlsx、pptxをプログラム形式のGoogle形式に変換する手段を共有しています。 GoogleドライブAPIを使用してアップロードしていて、C#を使用してユーザーに共有しています。誰かがファイルを編集したときに重複した文書を作成するたびに。Officeファイル(docx、xlsx)をGoogleの形式に変換する方法C#

アップロード中にファイルを変換したいと思います。だから私は誰にも変換されたファイルを共有することができます。

Googleドライブv3 APIを使用しています。

ダウンロードコード:

private static System.IO.MemoryStream DownloadFile(DriveService service, string fileID) 
    { 
     var request = service.Files.Get(fileID); 
     var stream = new System.IO.MemoryStream(); 

     // Add a handler which will be notified on progress changes. 
     // It will notify on each chunk download and when the 
     // download is completed or failed. 
     request.MediaDownloader.ProgressChanged += (Google.Apis.Download.IDownloadProgress progress) => 
     { 
      switch (progress.Status) 
      { 
       case Google.Apis.Download.DownloadStatus.Downloading: 
        { 
         Console.WriteLine(progress.BytesDownloaded); 
         break; 
        } 
       case Google.Apis.Download.DownloadStatus.Completed: 
        { 
         Console.WriteLine("Download complete."); 
         //SaveStream(stream, saveTo); 
         break; 
        } 
       case Google.Apis.Download.DownloadStatus.Failed: 
        { 
         Console.WriteLine("Download failed."); 
         break; 
        } 
      } 
     }; 
     request.Download(stream); 
     return stream; 
    } 

    private static void SaveStream(System.IO.MemoryStream stream, string saveTo) 
    { 
     using (System.IO.FileStream file = new System.IO.FileStream(saveTo, System.IO.FileMode.Create, System.IO.FileAccess.Write)) 
     { 
      stream.WriteTo(file); 
     } 
    } 

答えて

0

ここでは、私の友人を始めるために何か。 Basic uploadsImporting to Google Docs typesを確認して、アップロードする方法と、いくつかのファイル形式をGoogle形式に変換する方法を示します。

var fileMetadata = new File() 
{ 
    Name = "My Report", 
    MimeType = "application/vnd.google-apps.spreadsheet" 
}; 
FilesResource.CreateMediaUpload request; 
using (var stream = new System.IO.FileStream("files/report.csv", 
         System.IO.FileMode.Open)) 
{ 
    request = driveService.Files.Create(
     fileMetadata, stream, "text/csv"); 
    request.Fields = "id"; 
    request.Upload(); 
} 
var file = request.ResponseBody; 
Console.WriteLine("File ID: " + file.Id); 
+0

ありがとうございました...しかし、apiを使用してダウンロードすると、ファイルがMS WordまたはExcelで開かれませんでした...ダウンロード時に何か変更する必要がありますか?私の質問に付属のダウンロードコード... – user3844707

+0

私はエクスポートオプションを使用してこれを行っています。 var request = service.Files.Export(fileID、GetMimeType(saveTo)); // service.Files.Get(fileID);ありがとうございました... – user3844707

関連する問題