Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
Появилась глобальная задача из прошлого века. (MS Excel 2003) Краткое содержание текущей ситуации: Есть куча народа (юзера), которые используют разные Excel-файлы как клиент к БД. Excel-файлы (клиенты) имеют довольно развитый код на VBA (формулы + макросы + формы + графики + всякая гадость). Довольно часто возникает ситуация когда юзера что-то меняют в Excel-файле (кнопочку добавил, формулу поменял, макрос подрихтовал, другая беда) В общем за годы работы у заказчика наступил хаос - теперь нам разгребать доверили. Краткое содержание задачи: Каким-то образом поддерживать версионность всех клиентов от всех юзеров. Автоматически менять код макросов, формул, виды графиков и другой дурни у каждого клиента. В общем сделать что-то типа синхронизации внутреннего состояния каждого Excel-файла с возможностью отката. Что пришло в голову: Вспомнилось, что MS строит свои форматы файлов для Офиса в формате? который теоретически можно представить в виде XML. Погуглив и попробывав несколько таких приблуд, увидел, что они выдирают только данные со страниц, но не трогают макросы и т.п. чухню. Вопросы: 1. Как (и/или чем) можно слить ВЕСЬ Excel-файл в XML? 2. Может кто подскажет другой подход к реализации данной задачи? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 16:17 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
Не очень понятно, клиент от БД отделен или нет? Какая СУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 16:19 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
1) Никак. Проект VBA бинарен до мозга костей. Даже в xlsx-архиве от лежит файлом отдельным от остального xml. 2) Найти стену потверже, разбег подальше и как бы невзначай проводить туда заказчика. А если серьезно, то есть да решения. Первое — сложить файлы на сервер и пусть они там хранятся как образцы, а юзеры их оттуда копируют. Второе — написать нормальное ПО взяв за основу наработанный код. Jah loves you. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 16:29 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
клиент - это Excel-файл, который по ConnectionString коннектится к SQLServer и Oracle. нам надо именно вот эти Excel-файлы конвертить в XML. потом будем этот XML уже проверять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 16:29 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
Кстати, версионность с возможностью отката можно сделать малой кровью — поставить всем клиент SourceSafe и базу на сервер. Jah loves you. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 16:32 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
наработаннй код - это не проблема портировать, НО вот юзера пользуют в этом коде доооооохрена специфических Excelных функций, которые просто так не запортируешь. именно из-за этих функций до сих пор они сидят на Excel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 16:32 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
RegisteredUserклиент - это Excel-файл, который по ConnectionString коннектится к SQLServer и Oracle. нам надо именно вот эти Excel-файлы конвертить в XML. потом будем этот XML уже проверять. А зачем? Правильно настроить СУБД, чтобы не принимала некорректные данные. У MSSQL для этого дохренища возможностей. Выдать пользователю образец клиентской программы. Если они чего-то дорабатывают - должны соответствовать протоколу обмена, иначе сервер не примет результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 16:35 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
RegisteredUserнаработаннй код - это не проблема портировать, НО вот юзера пользуют в этом коде доооооохрена специфических Excelных функций, которые просто так не запортируешь. именно из-за этих функций до сих пор они сидят на ExcelПоявилась одна мысль, но нужен пример кода с такими функциями. Хотя бы их названия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 16:36 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
Shocker.ProRegisteredUserклиент - это Excel-файл, который по ConnectionString коннектится к SQLServer и Oracle. нам надо именно вот эти Excel-файлы конвертить в XML. потом будем этот XML уже проверять. А зачем? Правильно настроить СУБД, чтобы не принимала некорректные данные. У MSSQL для этого дохренища возможностей. Выдать пользователю образец клиентской программы. Если они чего-то дорабатывают - должны соответствовать протоколу обмена, иначе сервер не примет результат. вопрос не в этом... вы не на тот вопрос отвечаете... точнее я даже не задавал такого вопроса... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 16:37 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
AntonariyRegisteredUserнаработаннй код - это не проблема портировать, НО вот юзера пользуют в этом коде доооооохрена специфических Excelных функций, которые просто так не запортируешь. именно из-за этих функций до сих пор они сидят на ExcelПоявилась одна мысль, но нужен пример кода с такими функциями. Хотя бы их названия. ну давайте с простого начнем: линейная регрессия - LINEST() на русском ЛИНЕЙН() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 16:44 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
вот в модуле есть такой код: Public Sub REGRESSION() Sheets("DATA").Select Range("N2:q6").Select Selection.FormulaArray = _ "=LINEST(I2:I" & COUNTER + 1 & ",e2:f" & COUNTER + 1 & ",TRUE,TRUE)" ... End Sub и вот допустим юзер возмет и поменяет его на Public Sub REGRESSION() Sheets("DATA").Select Range("N2:q6").Select Selection.FormulaArray = _ "=LINEST(I2:I" & COUNTER + 1 & ",E34:f" & COUNTER + 1 & ",TRUE,TRUE)" ... End Sub а я бы очень хотел вытянуть эти изменения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 16:50 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
Ну что ж, мысль вполне рабочая. Нужно вынести все макросы в VBS-скрипты, сами файлы после этого можно сохранить в XML. Написать и раздать всем addin, который сможет подгружать, сопоставлять с xml-файлами и исполнять эти скрипты. Скрипты потребуется слегка изменить, чтобы те самые специфические функции (они являются членами класса WorksheetFunction), доступные в VBA-проекте глобально, были доступны в VBS-скрипте как члены какого-нибудь объекта. Ну и от типов придется избавляться. А вот что с формами делать, не знаю. Разве что сделать аналогичные в HTML. C другой стороны, учитывая краткое содержание задачи все это не нужно. Зачем все держать в виде текста, если только и требуется, что поддержка версионности? SourceSafe умеет все это кроме "автоматически". Синхронизация будет происходить путем перезаписи файла целиком при выборе пункта Get latest version. Если только нет причин, по которым этого делать нельзя. Jah loves you. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 17:05 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
RegisteredUserвот в модуле есть такой код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 17:07 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
Тут еще такая мысль прокатилась... А можно создавать Excel-файл "налету"? запихивать в него начинку в виде макросов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 17:10 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
Вообще да, но это требует мутных настроек безопасности на каждом клиенте. Ибо вирусы. Кстати, антивирусы на такие манипуляции реагируют очень нервно по указанной причине. Jah loves you. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 17:17 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
ну мутные настройки безопасности пока опустим. тут важна сама возможность мастерить файл клиента "на лету" с запихиванием в него всякой начинки в виде кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 17:37 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
Можно. Но только из-под самого экселя. Ставьте ссылку на Microsoft Visual Basic for Applications Extensibility и изучайте ее возможности. А так же в поиск по VBIDE. Jah loves you. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 18:33 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
RegisteredUserвопрос не в этом... вы не на тот вопрос отвечаете... точнее я даже не задавал такого вопроса... Ну, честно говоря, я отталкиваюсь от этого: RegisteredUserВ общем за годы работы у заказчика наступил хаос - теперь нам разгребать доверили. Может, раз уж приходится разгребать, не пытаться сделать из хаоса систематизированный хаос, а ужесточить формализацию.... Впрочем, вам виднее. Вот тут еще недавно было похожее обсуждение, правда заглохло.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 19:19 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
"приблуды" да "чухня", что за жаргон? Создатель этого топика, ты случайно не с лысой головой и не высокого роста? Если уж взялся за дело, то будь добр - отнесись к своему дело профессионально! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2010, 22:08 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
RegisteredUser, А нужно ли в принципе, чтобы у каждого клиента был файл отличный от файла других клиентов. Почему нельзя сделать один централизованный файл, который каждый раз считывается с сервера и оттуда запускается. В нём установить защиту от сохранения на клиентской машине, либо проверять, откуда клиент запустил свой файл А если клиенты хотят какие-то новшества и они полезны всем, то делать их так-же централизованно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2010, 09:04 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
Djon PlayerRegisteredUser, А нужно ли в принципе, чтобы у каждого клиента был файл отличный от файла других клиентов. Почему нельзя сделать один централизованный файл, который каждый раз считывается с сервера и оттуда запускается. В нём установить защиту от сохранения на клиентской машине, либо проверять, откуда клиент запустил свой файл А если клиенты хотят какие-то новшества и они полезны всем, то делать их так-же централизованно. это было бы очень просто... к сожалению никакие условия работы юзеров менять нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2010, 12:26 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
у нас сделано так: на корпоративном сайте лежит файлик ЭТАЛОН если человек хоет работать с ним, то он скачивает его оттуда и работает если есть обновление файла, то его выкладываем на сайт и пишем новость, что необходимо обновить файл единственное, что плохо, изменения пользователя НИКАК не окажутся в ЭТАЛОННОМ файле поэтому, если пользователь хочет что-то изменить он должен вас проинформировать,а вы уже внесете изменения в файл и опубликуете новую версию либо использовать SorceSafe, как говорил Antonariy I Have Nine Lives You Have One Only THINK! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2010, 12:46 |
|
||
|
Excel to XML - ВСЁ в XML!!!!
|
|||
|---|---|---|---|
|
#18+
> Автор: RegisteredUser > к сожалению никакие условия работы юзеров менять нельзя. Тогда автоматизация бардака, приводит к появлению автоматизированного бардака. Автоматизация рабочего процесса в любом случае приводит к изменениям в работе пользователей, если пользователь три дня обрабатывал файл, потом ты написал ему макрос, который производит эту обработку за час-другой, то это не значит, что пользователь так и будет три дня сидеть и ничего не делать. Подготовь аргументированную служебную записку со своим видинием как должно быть, причем не просто это нужно делать так, а почему так и какие преимущества это даст. И отдай руководству и будь готов отстаивать свою позицию. Удачи Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2010, 12:48 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=137&tid=2160142]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
24ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 359ms |

| 0 / 0 |
