#google-apps-script #google-sheets #google-drive-api
Вопрос:
Я ищу способ преобразовать файл brut в .txt, а затем в электронную таблицу, используя скрипт Google Apps.
Я уже видел способ преобразования xls в электронную таблицу Google с помощью этого скрипта (с использованием Drive API V2). :
function convert_XLS_To_SpreadSheet(){
var folder = DriveApp.getFoldersByName('RootFolder').next().getFoldersByName('depository').next();
var txtFile = folder.getFilesByName('file.xls').next();
Logger.log('Text File : ' txtFile);
var resource = {
title : txtFile.getName(),
mimeType : MimeType.GOOGLE_SHEETS,
parents: [{id : folder.getId()}],
}
Drive.Files.insert(resource, txtFile.getBlob(),{
convert: true
});
txtFile.setTrashed(true);
}
Я попытался сделать то же самое, заменив файл, который я хотел, в формат txt, но это дает мне документ Google, даже если я укажу правильный тип файла.
Комментарии:
1. Для уточнения: Что такое файл «brut»?
2. каковы разделители?
3. Привет, разделители-это ВКЛАДКА @Cooper
4. Файл Brut -> файл без расширения @andrewjames
5. Каковы разделители в конце строки?
Ответ №1:
Разделитель столбцов: t
Разделитель строк: n
Код:
function bf2ss() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Sheet1');
const file = DriveApp.getFileById('fileId');
let lA = file.getBlob().getDataAsString().split(/n/);
let fA = lA.map(r => r.split(/t/));
sh.clearContents();
sh.getRange(1,1,fA.length,fA[0].length).setValues(fA);
}
Лист1:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
Комментарии:
1. Большое спасибо, это отлично работает; Я не разбирался в разделителях конца строки, думал, что это определенный символ, но теперь все в порядке !