#google-sheets #google-sheets-export-url
#google-sheets #google-sheets-export-url
Вопрос:
Есть ли способ принудительно загрузить ссылку вместо того, чтобы браузер пытался открыть файл? В этом случае у меня есть электронная таблица docs и несколько ссылок на файлы mp3. Я хочу, чтобы пользователи загружали эти файлы вместо того, чтобы браузер воспроизводил их. MP3-файлы размещены на другом сайте. Спасибо, Бо
Комментарии:
1. Мне нравится, насколько сложно они это делают. Думаю, я просто использую другую платформу вместо этого.
Ответ №1:
Чтобы создать ссылки для загрузки документов — https://docs.google.com/feeds/download/documents/Export?docID=yourDocId
Чтобы создать ссылки для загрузки любого файла — https://docs.google.com/uc?id=yourDocIdamp;export=downloadamp;hl=en_US
Чтобы создать ссылки для загрузки электронных таблиц — https://spreadsheets.google.com/feeds/download/spreadsheets/Export?key=yourDocIdamp;exportFormat=csv
Для получения дополнительной информации, пожалуйста, перейдите сюда
ОБНОВЛЕНИЕ В 2018 году
Новый URL для загрузки является
https://docs.google.com/spreadsheets/d/<KEY>/export?gid=<GID>amp;format=csv
где <KEY>
и <GID>
можно получить по URL-адресу вашей навигации,
https://docs.google.com/spreadsheets/d/<KEY>/edit#gid=<GID>
PS: электронные таблицы (workbook) могут содержать несколько листов (worksheets), GID — это желаемый идентификатор листа. Обычно в электронной таблице на одном листе есть gid=0
, но если вы добавите больше, они будут содержать случайные числа (GID сохраняется даже при изменении порядка табуляции).
Итак, используя wget
или curl
, вы можете протестировать,
wget --no-check-certificate -O test.csv
'https://docs.google.com/spreadsheets/d/0At2sqNEgxTf3dEt5SXBTemZZM1gzQy1vLVFNRnludHc/export?gid=0amp;format=csv'
Комментарии:
1. Эта ссылка для «ссылки для загрузки любого файла» не работает. Обновление?
2. Как бы эти ссылки выглядели сейчас?
3. Это также работает, если вы опускаете параметр gid, например <a rel="nofollow noreferrer noopener" href="https://docs.google.com/spreadsheets/d//export?format=xlsx» rel=»nofollow noreferrer»> docs.google.com/spreadsheets/d /<КЛЮЧ>/экспорт?формат=xlsx
4. @Kelvin Сейчас это не работает, есть какие-нибудь обновления?
Ответ №2:
Чтобы расширить ответ Мокарома (потому что я не могу комментировать), вам нужно заменить часть этих ссылок, в которых указано «yourDocId», идентификатором документа страницы, которую вы пытаетесь загрузить. Это ключ = часть URL.
Например, если у вас была электронная таблица в https://docs.google.com/spreadsheet/ccc ?key=0AhjOs40Xk1-4dGg0MjMVYURPMFRpeUFhbmZBTkZ0dEE#gid=8, тогда вы перейдете к https://spreadsheets.google.com/feeds/download/spreadsheets/Export ?key=0AhjOs40Xk1-4dGg0MjMVYURPMFRpeUFhbmZBTkZ0dEEamp;exportFormat=csv для ссылки на скачивание.
Ответ №3:
В моем приложении мне нужно было загрузить таблицу с Google Диска в виде файла CSV (значения, разделенные запятыми). Ссылки на файлы Google Drive имеют длинные идентификаторы, такие как:
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 = @"amp;exportFormat=csv";
t = preFix;
t = [t stringByAppendingString:ID];
t = [t stringByAppendingString:opCmd];
myURL = [NSURL URLWithString:t];
theStuff = [NSString stringWithContentsOfURL:myURL encoding: NSUTF8StringEncoding error:amp;error];
if(error != nil)
{
// There was an error downloading the spread sheet file.
// We will return a zero length string.
NSLog(@"%@",error);
}
return theStuff;
}
Комментарии:
1. Добавьте теги, чтобы заинтересованные люди знали о вашем вопросе.