Встраивайте интерактивный лист Google на сайт, не позволяя пользователям сохранять изменения [PHP, HTML]

Я хочу добавить таблицу Google Sheets на свой веб-сайт. Мне бы хотелось, чтобы пользователи могли зайти на мой сайт, чтобы они могли видеть и взаимодействовать с таблицей. Электронная таблица также содержит некоторые формулы. Например, есть

width, height , fabric , price колонка

в этом листе. Ткань представляет собой выпадающий список и содержит несколько видов тканей с разными ценами. Формула для расчета цены:

height*width*fabric value

Поэтому, когда пользователь добавляет ширину, высоту и выбирает ткань, он выводит соответствующее значение в поле цены.

Поэтому я хочу встроить этот лист Google в свой веб-сайт, чтобы пользователь мог использовать его для расчета цен без сохранения в исходной таблице.
у меня есть php Веб-сайт. Если мы не можем сделать это с помощью Google Sheets, то есть ли способ загрузить этот лист Excel на мой сайт и выполнить ту же операцию?

Пожалуйста помоги.

-1

Решение

Этот вопрос очень расплывчатый. Google Cheats не является ни программируемым, ни API-ориентированным сервисом. Вам нужен скрипт, который предоставляет все функциональные возможности Excel, но не должен позволять сочетания клавиш CTRL + S. Я имею в виду сохранение изменений.

Вот библиотеки для создания веб-приложений SpreadSheet: —
[Пожалуйста, смотрите эту ссылку] https://jspreadsheets.com

Handsontable кажется довольно многообещающим, но есть много доступных библиотек, которые вы должны выполнить поиск. https://jspreadsheets.com/handsontable.html

1

Другие решения

Я думаю, что понимаю, что вы имеете в виду, но я не совсем уверен.
Из того, что вы сказали в вопросе, я предполагаю, что:

  • У вас есть рабочая таблица Google Sheets.
  • У вас есть веб-сайт, и вы хотите встроить эту таблицу в свой веб-сайт.
  • Вы хотите, чтобы люди могли взаимодействовать с электронной таблицей, но без изменения формул и т. Д.

Итак, я думаю, у вас есть 2 основных варианта:

Вариант 1: встроить электронную таблицу с разрешениями

Я понимаю, что вы попробовали этот вариант, и он не работает. Пожалуйста, смотрите вариант 2. Этот первый вариант предполагает использование созданной вами электронной таблицы и наделение ее некоторыми правами на редактирование. Я предполагаю, что в вашей электронной таблице есть ячейка с проверкой данных (для создания выпадающего меню. Если нет, не могли бы вы сказать, как это делается), и именно здесь пользователь выбирает сумму для ввода в ваш алгоритм. Если это так, то что вы хотите сделать, это:

  1. Откройте электронную таблицу в Google Sheets и перейдите на лист, с которым вы хотите, чтобы люди взаимодействовали.
  2. Внизу экрана найдите текущий лист и нажмите маленькую черную стрелку рядом с именем. Затем нажмите «Защитить лист».
  3. Новое окно должно открыться справа. (Снимок экрана: окно «Защитить лист») В этом новом окне нажмите «Лист», затем в раскрывающемся списке ниже выберите лист, с которым взаимодействует пользователь.
  4. Затем установите флажок «За исключением определенных ячеек». В новом поле введите ссылку на ячейку пользовательского ввода. Если у вас их несколько, нажмите «Добавить другой диапазон» и используйте это новое поле для ссылки на другую ячейку. Когда вы закончите, нажмите «Установить права». Когда появится новое окно, убедитесь, что опция «Ограничить, кто может редактировать эту страницу» отмечена и под ней отображается «Только вы». Затем нажмите «Готово».
  5. Теперь, чтобы встроить этот файл, вам нужно перейти на вкладку «Файл» в левом верхнем углу и нажать «Опубликовать в Интернете». Когда появится окно, выберите «Вставить», затем в раскрывающемся списке выберите страницу, с которой пользователь будет взаимодействовать. Затем нажмите «Опубликовать», и, надеюсь, вам будет предоставлен код для встраивания, который вы можете использовать на своем веб-сайте.
    Пожалуйста, попробуйте это и вернитесь ко мне с вашими результатами.

Вариант 2: форма Javascript

Я нашел в Интернете несколько HTML-кодов и добавил некоторые функции, соответствующие вашим потребностям. Пожалуйста, запустите приведенный ниже код и посмотрите, будет ли он работать для вас, и если это так, скопируйте его и вставьте в раздел HTML-кода на вашем конструкторе веб-сайтов. Чтобы изменить ткани и цены, просто войдите в код и отредактируйте их в тегах ». Если вам нужна помощь с этим, пожалуйста, просто спросите.

<!doctype HTML>
<html`enter code here` lang="en">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>
Fabric price calculator
</title>
<head>
<style>
body {
font-family: sans-serif;
color: black;
}
input[type="text"] {
color: black;
}

</style>
</head>
<body>
<h2>Fabric price calculator</h2>
<form role="form" id="price" name="price">
<p>Select fabric type:</p>
<select class="" id="itemselect" onchange="calculate()">
<option id="itemprice" value="1.500">Cotton @ £1.50 / sq. m</option>
<option id="itemprice" value="1.250">Denim @ £1.25 / sq. m</option>
<option id="itemprice" value="3.000">Wool @ £3.00 / sq. m</option>
<option id="itemprice" value="6.000">Silk @ £6.00 / sq. m</option>
<option id="itemprice" value="4.000">Leather @ £4.00 / sq. m</option>
<option id="itemprice" value="5.000">Nylon @ £5.00 / sq. m</option>
</select>
<p>Enter length and width of fabric:</p>
<p><input type="number" id="qty" onchange="calculate()" value="" placeholder="Length (m)"></p>
<p><input type="number" id="qtya" onchange="calculate()" value="" placeholder="Width (m)"></p>
<p>Total price of fabric:</p>
<p><input type="text" id="result" value="" readonly="readonly"></p>
</form>

<script type="text/javascript">
function calculate(price){
var item = document.getElementById("itemselect").value || 0;
var qty = document.getElementById("qty").value || 0;
var qtya = document.getElementById("qtya").value || 0;

item = parseFloat(item).toFixed(2);
qty = parseFloat(qty).toFixed(2);
qtya = parseFloat(qtya).toFixed(2);

var result = parseFloat(item*qty*qtya).toFixed(2);

document.getElementById("result").value="£"+result;
}
</script>
</body>
</html>

Я надеюсь, что это все работает!

penguin_k

1

Я думаю, что вам следует просто скопировать свой шаблон или базовую электронную таблицу для каждого пользователя, чтобы не имело значения, сохранят ли они его или нет: каждый пользователь будет работать со своей собственной копией.

В конце концов выследите копии, чтобы вы могли регулярно их удалять (сборка мусора).

Посмотрите на COPY метод API Google Диска:

https://developers.google.com/drive/v2/reference/files/copy

Пример кода в PHP:

/**
* Copy an existing file.
*
* @param Google_Service_Drive $service Drive API service instance.
* @param String $originFileId ID of the origin file to copy.
* @param String $copyTitle Title of the copy.
* @return DriveFile The copied file. NULL is returned if an API error occurred.
*/
function copyFile($service, $originFileId, $copyTitle) {
$copiedFile = new Google_Service_Drive_DriveFile();
$copiedFile->setTitle($copyTitle);
try {
return $service->files->copy($originFileId, $copiedFile);
} catch (Exception $e) {
print "An error occurred: " . $e->getMessage();
}
return NULL;
}

Обратите внимание, что вам нужны разрешения, но на стороне сервера. Только не используйте критическую учетную запись, поэтому вы остаетесь в безопасности в случае взлома сервера.

0
По вопросам рекламы [email protected]