1

.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);
        }

ファイルを挿入してグーグルドライブページ(所有者として記録)でクリックすると、メッセージが表示されます

「申し訳ありません。このURLのスプレッドシートが見つかりませんでした。正しいURLを使用していることと、スプレッドシートの所有者がそれを削除していないことを確認してください。」

MimeTypeを「text/csv」に変更してファイルを挿入すると、クリックした後、 「プレビューは利用できません。このアイテムは、Googleドライブアプリの(MyApp'sName)で作成されました。このファイルをダウンロードするか、次のいずれかを使用してください。それを開くためにインストールしたアプリ。」

このファイル(「text / csv」MimeTypeで作成されたファイル)を右クリックして「Googleドキュメントにエクスポート」オプションを選択すると、到達したい結果が得られます-.csvのファイルコンテンツを含むスプレッドシートファイル。しかし、そのような間接的な方法は私を完全に満足させるものではありません。アプリケーションから直接.csvファイルのコンテンツを使用して、Googleドライブにスプレッドシートファイルを作成する方法はありますか?

4

2 に答える 2

1

私はc#を知りませんが、それに基づいて、行内でJavaをミラーリングします

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

同等のものを挿入する必要があります

.setConvert(true)

また ...

mimetypeは「text/csv」である必要があります

于 2012-09-12T15:14:57.580 に答える
1

私は答えを見つけました:)

プログラムでファイルを適切なGoogleドキュメント形式に変換する方法:

var service = new DriveService(new BaseClientService.Initializer
{
    ...
});

...

FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, _mimeType);
request.Convert = true;
request.Upload();
于 2014-10-03T14:16:52.117 に答える