使用Drive API v3

时间:2018-03-30 15:19:04

标签: c# excel google-drive-api console-application

我正在使用以下方法下载Google Doc和Google Sheet文件 - 这些工作正常。

public static MemoryStream DownloadFile(Google.Apis.Drive.v3.Data.File file)
    {
        Console.WriteLine("Downloading file '{0}'", file.Name);
        string mimeType = null;
        switch (file.MimeType)
        {
            case MIMETYPE_GOOGLE_SHEET:
                mimeType = "text/csv";
                break;
            case MIMETYPE_GOOGLE_DOC:
                mimeType = "text/plain";
                break;
        }

        MemoryStream stream = null;
        if (mimeType == null)
        {
            // Unsupported extension
            Program.WriteColoredText($"The MimeType {file.MimeType} is currently unsupported.", ConsoleColor.Red);
            Console.ReadKey();
        }
        else
        {
            stream = new MemoryStream();
            var request = GetExportRequest(file.Id, mimeType);
            request.Download(stream);
        }
        return stream;
    }

Google表格可以毫无问题地下载为“text / csv”。我已将XLSX文件上传到云端硬盘,并尝试通过将mimetype添加到switch语句来下载该文件:

switch (file.MimeType)
        {
            case MIMETYPE_EXCEL_SHEET: //application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
            case MIMETYPE_GOOGLE_SHEET:
                mimeType = "text/csv";
                break;
            case MIMETYPE_GOOGLE_DOC:
                mimeType = "text/plain";
                break;
        }

request.Download(stream)调用返回长度为0且没有异常的流。将实际的mimetype“application / vnd.openxmlformats-officedocument.spreadsheetml.sheet”传递给GetExportRequest()会产生相同的结果。

网上的一些搜索显示应该以不同的方式处理Excel文件,但我无法找到任何明确的答案。有什么想法吗?

0 个答案:

没有答案