:: Обсуждаем проекты
Эмулятор Excel
piva
Автор

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
В продолжении темы Экспорта в Excel в XML виделась мне картинка когда синтаксис и форма набора команд будет похожа на Excel, бился вчера долго над проблемой с кружечкой пива, и как всегда налетел на грабли с такой объектностью фокса, но оказавывается все победимо
*
* Foxcell - ну типа эмулятор Excel
*
loFoxCell=CreateObject("FoxCell")
With loFoxCell
With .WorkBook[1]
With .Sheet[1]
.Cells(1,1).Value="Ура ! Получилось"
.Cells(2,1).Value=12
? .Cells(1,1).Value
? .Cells(2,1).Value
EndWith
EndWith
EndWith
* В последствии будет заменено на Collection
Define Class FoxCell as Custom
Dimension WorkBook[1]
Add Object WorkBook[1] as WorkBook
EndDefine
* В последствии будет заменено на Collection
Define Class WorkBook as Custom
Dimension Sheet[1]
Add Object Sheet[1] as Sheet
EndDefine
Define Class Sheet as Collection
* Блин вот это необходимо для того что бы фокс при обращении не ругался
* .Cells is not an array
Dimension Cells[1,1]
* Так как в него непосредственно ничего не пишем то никакого когда нету
Procedure Cells_Assign(lnRow,lnCol)
With this
* Nothing to do
EndWith
* Самая "хитрая" процедура которая обманывает фокс подсовывая ему
* необходимыц нам объект
Procedure Cells_Access(lnRow, lnCol)
With this
* Это болезнь всего Fox Team любовь в "нулевым прогонам"
* в первый раз фокс как бы пробует на зуб, что это за зверь
* тем самым получаем lnRow=.F. и lnCol=.F. в качестве
* "нулевого прогона" потом все встает на свои места
If Empty(lnRow) and Empty(lnCol)
Return .null.
EndIf
* ФОрмируем ключ именно символьный который требует Collection
* Тем самым обеспечим себе в будущем сортировку по Колонкам
* внутри строк необходимую для формирования XML файла
Local lcKey
lcKey=Ltrim(Str(lnRow*100000+lnCol,20))
If Empty(This.GetKey(lcKey))
* Если такой объект не найден создадим начальный
* тем самым оперируем только теми ячейками которые
* есть а не всей поляной сразу
Local oCell
oCell=CreateObject("Empty")
AddProperty(oCell,"Value",.null.)
.Add(oCell,lcKey)
EndIf
* возвращаем сформированный объект
Return .Item(lcKey)
EndWith
EndDefine


------------------
Часто бывает так, что есть над чем задуматься, а нечем.




Исправлено 1 раз(а). Последнее : piva, 01.12.06 08:16
Ratings: 0 negative/0 positive
Re: Эмулятор Excel
PaulWist

Сообщений: 14616
Дата регистрации: 01.04.2004
Ну и ...., дальше развивай мысль, пока ты эмулируешь структуру Excel-я (и это хорошо), а дальнейшие шаги?


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Эмулятор Excel
piva
Автор

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
А дальше я пока не думал


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Эмулятор Excel
PaulWist

Сообщений: 14616
Дата регистрации: 01.04.2004
Вот блин халявщик , предлагаешь нам голову ломать , а потом скажешь у меня это все давным даdно сделано под fox2.0


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)




Исправлено 1 раз(а). Последнее : PaulWist, 01.12.06 09:31
Ratings: 0 negative/0 positive
Re: Эмулятор Excel
piva
Автор

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Ты не выпендривайся, а попробуй подскажи как теперь прикрутить свойства и стили XML к этой фигне
Блин в MSDN нифига толком не нашел, те же рамочки тока в стили оформляются а напрямую в Cell никак не пишутся


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Эмулятор Excel
piva
Автор

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Мда - чета я погорячился, овчинка не стоит выделки, причем сам Excel в некоторых случаях "теряет" mergecells, все пораскидлано по Styles и Cell придется бросить эту фигню и не выпендриваться


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Эмулятор Excel
PaulWist

Сообщений: 14616
Дата регистрации: 01.04.2004
Так ты скажи конечную идею, а то предложи то не знаю что.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Эмулятор Excel
piva
Автор

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Дык после того как все впихаем в Cells по комнаде типа SaveAs сохраняем все это счастье в XML вот и вся идея


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Эмулятор Excel
PaulWist

Сообщений: 14616
Дата регистрации: 01.04.2004
Ну хорошо, а причем здесь стили, всё равно даже если придумать как это сделать возникает следующий вопрос - эти стили применять к каким ячейкам, всем или некоторым и как отличать одни от других, те принципиально выпихнуть таблицу в ExcelXML думаю можно, но всё равно это будет плоская таблица, либо надо городить генератор отчетов.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Эмулятор Excel
piva
Автор

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Паша - сделай в Excel файлик с рамочками, жирным фонтом и так далее, сохрани и посмотри, там и так все ясно


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 2 (Гостей: 2)

© 2000-2024 Fox Club 
Яндекс.Метрика