Идея: Табличный процессор с JS
Активно пользуюсь Гуглодоксом, в том числе таблицами (их вариант Экселя). Возникла идея, за которую я вряд ли когда-то возьмусь из-за отсутствия времени. Поэтому предлагаю, кому хочется что-то сделать, но не знает что, реализовать следующую вещь.
Таблицы мне кажутся очень негибкими в плане формул. Сегодня пытался вывести день недели и получилось вот что: Код:
=IF(WEEKDAY(A2;2)=1; "пн"; IF(WEEKDAY(A2;2)=2; "вт"; IF(WEEKDAY(A2;2)=3; "ср"; IF(WEEKDAY(A2;2)=4; "чт"; Предлагаю сделать свой табличный препроцессор, где формулы будут обычными JS выражениями, так как JS знают очень многие, а учить быдлоформулы не всем в кайф. Каждая ячейка имеет свой адрес вида A[1] (может A1, то есть как обычная переменная?). Диапазоны можно задавать в таком виде: range(A[1], C[54]), то есть здесь каждый элемент массива имеет информацию о своём адресе, позволяя функции range создавать диапазон. Встроенный функций тут может быть очень мало, весь остальной функционал может быть реализован встроенными средствами JS. Вот пара гипотетических примеров, тупо вписываемых в нужную ячейку: 1. =range(A[1], C[54]).sum(); 2. =function(){ switch(todayWeekDay()) {// допустим weekday определена где-то в программе, // в виде модуля к теблицам, чтоб не писать каждый раз new Date().getDay() case 1: return "Понедельник"; ...... case 7: return "Воскресенье"; } 3. Какая-то сторонняя функция (модуль) table.range(A[1], C[54]).forEach(function( cell ){ if( cell == 4 ) { cell.node.style.color = 'red'; // node — ссылка на ячейку в таблице } }); В общем, я не знаю, предлагаю ли я что-то свежее и интересное, просто такой вещью сам бы пользовался, если бы она была где-то в облаке (например, использовала Google Fusion Tables, к которому я не ровно дышу). |
В яваскрипте, тем более, все числа, строки и прочее являются объектами:
//создание объекта одной ячейки: var node = querySelector( 'table tr:nth-child($col) td:nth-child($row)'.replace( '$col', col ).replace( '$row', row ) ); var cell = new Number( value ); cell.node = node; cell.address = [col, row]; |
Цитата:
А быдлоформулы скопированы из excel'я, и понятны большинству бухгалтерья, которое нифига не знает JS. |
Цитата:
Цитата:
Для убирания проблем, связанных с кукисами и прочим, можно каждый документ вешать на отдельный домен. |
Цитата:
Цитата:
|
trikadin,
1. Ну, например, я хочу обратиться к ячейке, строка которой указана в другой ячейке: B[A[5]] — как это сделать в Эксэле? 2. Условное форматирование, которое сильно хромает в современных процессорах 3. Тот же самый аякс для взятия некоторых данных из апи (мне, например, нужно постоянно вручную брать курсы НБУ за разные дни). В тех же GFT очень много самой разной информации. |
Цитата:
Что криминального вы увидели? |
Цитата:
Эм... Пол десятка тысяч доменов? |
FINoM, ну это на маленькую команду проект тогда получается.
|
Ничего не понял, наверное потому что с таблицами в JS почти не работал.
Но вот если бы еще и сортировка столбиков, то било би неплохо. |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
fd898ff8bc.docs.example.com вместо docs.example.com/fd898ff8bc |
Цитата:
|
А как отдельный домен для каждого документа помешает спереть куки? Они на этом отдельном домене должны быть для авторизации на этом домене.
|
Kolyaj,
Это да. Я бы поместил на корневом домене скрипт, который бы выдавал куки для конкретного поддомена(для разных поддоменов авторизационные куки - разные, и выдаются центральным доменом) Ну, то есть с поддомена идет запрос "авторизован ли я?" на центральный домен. Просто запрос, без клиентской JS-обработки В ответ центральный домен выдает куку для конкретного поддомена, сообразуясь со своей мастер-кукой. Как-то так |
Цитата:
|
Цитата:
|
Да, если поддомены делать на каком-нибудь другом домене, с авторизацией прокатит.
Но всё равно схема ненадёжная, обязательно где-нибудь взорвётся. |
FINoM, мне кажется, это у вас от нелюбви к Excel. Например, первая формула может быть заменена экселевской формулой ВЫБОР. Для обращения к ячейке по её адресу из строки в другой ячейке, используется ДВССЫЛ. Привожу пример для русифицированного экселя, поскольку только таким пользовался. Вообще, я привык к тому, что если чего-то сделать не получается в Excel, нужно луркать в 90% случаев.
|
Ничо не взорвется.
Взломать пожно и ПК |
GuardCat, экселем я не пользуюсь, пользуюсь гуглодоксом. Именно облачной версии широкофункционального табличного процессора мне не хватает.
|
А ты не пробовал MS Office Web Apps? По моему оч крутая штука.
|
Цитата:
|
Цитата:
|
Цитата:
А если без шуток - то правда зря. Есть риск появления холивара. |
Цитата:
|
Мне всего лишь интересно. Прикладных программ у МС не так много.
|
Цитата:
|
Аутлук не плохой, он просто ДРУГОЙ, ака фильм про чужих, там был один без глаз, но видит.
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Я считаю что ОпенОфис и ВинОфис97 пик необходимого функционала, дальше пошло по кругу(смена дизайна -> залатывание дыр). Причем пошло в обоих программах. |
Ну конечно рисование сайтов в Ворде(В XP вроде ввели) нужное и важное повседневное занятие среднестатистического пользователя, как и пасьянс, но мне кажется не столь необходимое в Офисной программе.
|
Цитата:
Цитата:
Цитата:
|
Цитата:
PS косяк видел только один - с размером шрифта в расписании :) но для меня это не было критичным - расписание давно было в pdf... для просмотра на айфоне. |
Цитата:
Да здравствует срач!!! |
Цитата:
|
Часовой пояс GMT +3, время: 17:51. |