Нет необходимости в хэше шестнадцатеричных букв. JavaScript может сделать это сам по себе:
function get_random_color() {
function c() {
var hex = Math.floor(Math.random()*256).toString(16);
return ("0"+String(hex)).substr(-2); // pad with zero
}
return "#"+c()+c()+c();
}
Что ж, если бы вы сделали это в Excel, то это не было бы веб-приложением. Это было бы приложение Excel.
Не то чтобы это плохо. Если есть смысл создавать приложение в Excel, сделайте это.
Проблемы, с которыми вы столкнетесь при выполнении этого в Excel, будут такими же, как и проблемы, с которыми вы столкнетесь с любым настольным или веб-приложением. Например, как вы справляетесь с развертыванием новых версий приложения? Как вы справляетесь с обновлением приложения для новых (или более старых) версий Excel? и т. д.
ETA:
Если вы хотите избежать ошибок, связанных с Excel VBA и проблем с управлением настольными приложениями, вы можете изучить Google Spreadsheets API . Вы можете использовать его для создания / обновления электронных таблиц Google docs на лету, включая формулы и многие другие полезные свойства электронных таблиц.
После многих лет программирования в Excel-VBA лучший ответ, который я могу дать вам за то, что вы этого не делаете:
Excel-VBA содержит ошибки! Вероятно, это приложение с наибольшим количеством ошибок, созданное Microsoft. Он отлично подходит для некоторых задач, но принуждение его к выполнению работы, для которой он никогда не был предназначен, приведет к проблемам.
У меня есть несколько таблиц, которые делают похожие вещи (то, что Билл никогда не планировал), и все без исключения они колеблются. на грани провала и имеют тенденцию к сбою при малейшей провокации.
Конечно, вы можете это сделать, но головная боль того не стоит.
Excel не предназначен для использования таким образом, поэтому это будет болезненно.
Две лучшие идеи для интеграции веб-таблиц:
Это неплохая идея, но имеет некоторые ограничения. Если развертывание не является для вас проблемой и вам не нужен «универсальный» доступ к приложению, ваше решение, скорее всего, сэкономит вам время. Веб-приложение, безусловно, было бы более элегантным подходом, особенно если вы хотите сделать программное обеспечение общедоступным.
Интернет изначально основан на HTML и дополнен базами данных, CSS, серверными языками и javascript (возможно, другими). Как и в большинстве случаев, вы должны использовать правильный инструмент для работы. Если вам нужен веб-сайт, вы должны использовать инструменты для создания веб-сайта.
Excel не предназначен для создания веб-сайтов, принуждение к этому, скорее всего, приведет к большему разочарованию, чем к счастью.
Ну, вы собираетесь запустить его на стороне сервера, вы ' d, вероятно, столкнется с проблемами лицензирования и производительности.
Если вы доставляете .xls клиенту, вам потребуется, чтобы у всех ваших клиентов был Excel или что-то совместимое. Но вы также теряете контроль над своим "сайтом" - какой смысл посещать, если у вас есть все необходимое на месте?
Итак, операторы SQL будут на клиенте? Это редко бывает хорошей идеей.
Это плохая идея по той же причине, что писать графический редактор с MS Access - плохо или кодировать MMORPG с использованием Powerpoint - плохо :)
Я бы также сказал, что если вы остановитесь используя браузер в качестве клиента, он перестает быть «веб-приложением» - на самом деле вы просто говорите о листе Excel, который извлекает свои данные через HTTP.
+1 всем, кто сказал, что «приложение Excel не является веб-приложением».
НО ... Если вы хотите использовать метафору электронной таблицы для вычислений на стороне сервера для веб-приложения, или если вы хотите получить доступ к библиотеке финансовых функций, которые поставляются с Excel, из кода на стороне сервера, вы можете использовать Службы Excel . Он предоставляется через SOAP, совместим, вызывается с любой платформы с поддержкой SOAP.
Он поддерживает сервер. На самом деле он не загружает Excel на сервер, а выполняет функции без графического интерфейса.
Я считаю, что использование Excel в качестве браузера - плохая идея, однако я думаю, что лучше использовать Excel Control в настольном приложении.
Таким образом, вы можете контролировать sql и соединения . вы можете сохранять данные сколь угодно часто. вы также можете реализовать какой-то механизм обновления. Приложение будет более безопасным, и его сложнее взломать.
Я думаю, что Excel зависает, когда вы пытаетесь подключиться к какому-либо внешнему ресурсу, и таким образом вы все контролируете.
Вы начали с получения пользовательских требований для этого приложения? Не похоже, чтобы они с самого начала хотели создать веб-сайт. Похоже, им нужна была таблица Excel с макросами.