Принудительная ссылка на скачивание в электронной таблице документов Google - PullRequest
5 голосов
/ 19 мая 2011

Есть ли способ заставить ссылку на скачивание вместо браузера, пытающегося открыть файл? В этом случае у меня есть таблица документов и несколько ссылок на mp3-файлы. Я хочу, чтобы пользователи загружали эти файлы вместо того, чтобы браузер воспроизводил их. MP3 хранятся на другом сайте. Спасибо, Бо

Ответы [ 3 ]

12 голосов
/ 14 июля 2011

Чтобы создать ссылки для загрузки документов - https://docs.google.com/feeds/download/documents/Export?docID=yourDocId

Чтобы создать ссылки для загрузки любого файла - https://docs.google.com/uc?id=yourDocId&export=download&hl=en_US

Чтобы создать ссылки для загрузки электронных таблиц - https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=yourDocId&exportFormat=csv

Для получения дополнительной информации, пожалуйста, зайдите здесь


ОБНОВЛЕНИЕ В 2018

Новый URL для загрузки ishttps://docs.google.com/spreadsheets/d/<KEY>/export?gid=<GID>&format=csvгде <KEY> и <GID> можно получить из URL-адреса навигации ,https://docs.google.com/spreadsheets/d/<KEY>/edit#gid=<GID>

PS: электронные таблицы могут иметь несколько рабочих книг, GID - требуемый идентификатор рабочей книги.Таблица с одной рабочей книгой обычно имеет gid=0, но если вы добавите больше, у них будут случайные числа ( GID сохраняется даже при изменении порядка табуляции).

Итак, используя wget или curl вы можете проверить,

   wget --no-check-certificate -O test.csv \
    'https://docs.google.com/spreadsheets/d/0At2sqNEgxTf3dEt5SXBTemZZM1gzQy1vLVFNRnludHc/export?gid=0&format=csv'
4 голосов
/ 03 октября 2012

Чтобы расширить ответ Mokarom (потому что я не могу комментировать), вам нужно заменить часть тех ссылок, которые говорят "yourDocId", на идентификатор документа страницы, которую вы пытаетесь скачать. Это ключ = часть URL.

Например, если у вас есть электронная таблица на https://docs.google.com/spreadsheet/ccc?key=0AhjOs40Xk1-4dGg0MjMVYURPMFRpeUFhbmZBTkZ0dEE#gid=8,, вы перейдете на https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=0AhjOs40Xk1-4dGg0MjMVYURPMFRpeUFhbmZBTkZ0dEE&exportFormat=csv для ссылки на скачивание.

0 голосов
/ 21 октября 2017

В моем приложении мне нужно было загрузить электронную таблицу Google Drive в виде файла CSV (значения, разделенные запятыми).На файлы Google Диска ссылаются длинные идентификаторы, такие как:

1uFwmwD5UFLdD1DMPGT5p4fIGozfImx44DNCOeMJr1Lo

Вот блок кода, который будет делать это.В случае ошибки метод вернет строку нулевой длины.

- (NSString *) downloadGoogleSheetGivenFileID: (NSString *) ID {
// This will download a Google spreadsheet given it's file ID
// and convert it to a CSV file.
NSString    *   preFix;
NSURL       *   myURL;
NSString    *   opCmd;
NSString    *   t;
NSString    *   theStuff;
NSError     *   error = nil;

theStuff = @"";
// The URL has to be: prefix+ID+opCmd  The only thing that changes is the file's ID
preFix = @"https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=";
opCmd = @"&exportFormat=csv";
t = preFix;
t = [t stringByAppendingString:ID];
t = [t stringByAppendingString:opCmd];
myURL = [NSURL URLWithString:t];
theStuff = [NSString stringWithContentsOfURL:myURL encoding: NSUTF8StringEncoding error:&error];
if(error != nil)
{
    // There was an error downloading the spread sheet file.
    // We will return a zero length string.
    NSLog(@"%@",error);
}
return theStuff;

}

...