Я хочу добавить таблицу Google Sheets на свой веб-сайт. Мне бы хотелось, чтобы пользователи могли зайти на мой сайт, чтобы они могли видеть и взаимодействовать с таблицей. Электронная таблица также содержит некоторые формулы. Например, есть
width, height , fabric , price
колонка
в этом листе. Ткань представляет собой выпадающий список и содержит несколько видов тканей с разными ценами. Формула для расчета цены:
height*width*fabric value
Поэтому, когда пользователь добавляет ширину, высоту и выбирает ткань, он выводит соответствующее значение в поле цены.
Поэтому я хочу встроить этот лист Google в свой веб-сайт, чтобы пользователь мог использовать его для расчета цен без сохранения в исходной таблице.
у меня есть php
Веб-сайт. Если мы не можем сделать это с помощью Google Sheets, то есть ли способ загрузить этот лист Excel на мой сайт и выполнить ту же операцию?
Пожалуйста помоги.
Этот вопрос очень расплывчатый. Google Cheats не является ни программируемым, ни API-ориентированным сервисом. Вам нужен скрипт, который предоставляет все функциональные возможности Excel, но не должен позволять сочетания клавиш CTRL + S. Я имею в виду сохранение изменений.
Вот библиотеки для создания веб-приложений SpreadSheet: —
[Пожалуйста, смотрите эту ссылку] https://jspreadsheets.com
Handsontable
кажется довольно многообещающим, но есть много доступных библиотек, которые вы должны выполнить поиск. https://jspreadsheets.com/handsontable.html
Я думаю, что понимаю, что вы имеете в виду, но я не совсем уверен.
Из того, что вы сказали в вопросе, я предполагаю, что:
Итак, я думаю, у вас есть 2 основных варианта:
Вариант 1: встроить электронную таблицу с разрешениями
Я понимаю, что вы попробовали этот вариант, и он не работает. Пожалуйста, смотрите вариант 2. Этот первый вариант предполагает использование созданной вами электронной таблицы и наделение ее некоторыми правами на редактирование. Я предполагаю, что в вашей электронной таблице есть ячейка с проверкой данных (для создания выпадающего меню. Если нет, не могли бы вы сказать, как это делается), и именно здесь пользователь выбирает сумму для ввода в ваш алгоритм. Если это так, то что вы хотите сделать, это:
Вариант 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
Я думаю, что вам следует просто скопировать свой шаблон или базовую электронную таблицу для каждого пользователя, чтобы не имело значения, сохранят ли они его или нет: каждый пользователь будет работать со своей собственной копией.
В конце концов выследите копии, чтобы вы могли регулярно их удалять (сборка мусора).
Посмотрите на 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;
}
Обратите внимание, что вам нужны разрешения, но на стороне сервера. Только не используйте критическую учетную запись, поэтому вы остаетесь в безопасности в случае взлома сервера.