我正在使用以下方法下载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文件,但我无法找到任何明确的答案。有什么想法吗?