- Вы хотите поместить значения таблицы из данных HTML, используя Google Apps Script и / или встроенные функции электронной таблицы.
- Файлы HTML помещаются в ваш Диск Google.
Если я правильно понял, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
Шаблон 1:
В этом шаблоне IMPORTXML
используется для таблиц, развернутых с помощью веб-приложений.
Использование:
1. скопируйте и вставьте следующий скрипт в редактор скриптов.
function doGet(e) {
var fileId = e.parameter.id;
var html = DriveApp.getFileById(fileId).getBlob().getDataAsString();
var html = "<sample>" + html.match(/<table[\w\s\S]+?<\/table>/gi).join("") + "</sample>";
return ContentService.createTextOutput(html).setMimeType(ContentService.MimeType.XML);
}
2. Развертывание веб-приложений.
- В редакторе сценариев откройте диалоговое окно с помощью «Publi sh» -> «Развернуть как веб-приложение».
- Выберите «Me « для » Запустите приложение как: «.
- Выберите « Любой, даже анонимный » для « У кого есть доступ к приложению: «.
- Нажмите кнопку« Развернуть »как новую« Версия проекта ».
- Автоматически откройте диалоговое окно« Требуется авторизация ».
- Нажмите «Просмотреть разрешения».
- Выберите собственную учетную запись.
- Нажмите «Дополнительно» в разделе «Это приложение не подтверждено».
- Нажмите " Go to ### имя проекта ### (небезопасно) "
- Нажмите кнопку" Разрешить ".
- Нажмите" ОК ".
- Скопируйте URL-адрес веб-приложений. Это как
https://script.google.com/macros/s/###/exec
. - Когда вы изменили скрипт Google Apps, пожалуйста, повторно разверните его как новую версию. Этим измененный сценарий отражается в веб-приложениях. Пожалуйста, будьте осторожны.
3. Поместите формулу.
Пожалуйста, поместите следующую формулу в ячейку.
=IMPORTXML("https://script.google.com/macros/s/###/exec?id=###fileId###","//tr")
###fileId###
- это идентификатор файла HTML файла на Google Диске.
Шаблон 2:
В этом шаблоне таблицы HTML извлекаются из данных HTML, а таблицы помещаются в электронную таблицу с помощью API Sheets.
Использование:
1. скопируйте и вставьте следующий скрипт в редактор скриптов.
Пожалуйста, установите переменные fileId
, spreadsheetId
и sheetName
.
function myFunction() {
var fileId = "###"; // Please set the file ID of HTML file.
var spreadsheetId = "###"; // Please set the Spreadsheet ID for putting the values.
var sheetName = "Sheet1"; // Please set the sheet name for putting the values.
// Retrieve tables from HTML data.
var html = DriveApp.getFileById(fileId).getBlob().getDataAsString();
var values = html.match(/<table[\w\s\S]+?<\/table>/gi);
// Put the HTML tables to the Spreadsheet.
var ss = SpreadsheetApp.openById(spreadsheetId);
var sheet = ss.getSheetByName(sheetName);
var sheetId = sheet.getSheetId();
var rowIndex = 0;
values.forEach(function(e) {
var resource = {requests: [{pasteData: {html: true, data: e, coordinate: {sheetId: sheetId, rowIndex: rowIndex}}}]};
Sheets.Spreadsheets.batchUpdate(resource, spreadsheetId);
rowIndex = sheet.getLastRow();
})
}
2. Включить Sheets API.
Пожалуйста, включите Sheets API в службах Advanced Google.
3. Запустите сценарий.
При запуске функции myFunction
значения извлекаются из данных HTML и помещаются в электронную таблицу.
Примечание:
- Это простые примеры сценариев. Поэтому, пожалуйста, измените их для вашей реальной ситуации.
Ссылки:
К сожалению, с Ваш вопрос, я не могу понять о ваших фактических HTML данных. Поэтому, если произошла ошибка, и это не то направление, которое вы хотите, я прошу прощения.