Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Внедренные в XLS объекты (число прочтений - 11401 )
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Внедренные в XLS объекты
16. Августа 2007 :: 16:27
Печать  
УФФФ... Наконец-то одолел поддержку уровня Escher (внедренные объекты в документах MS Office).  Плачущий Знал бы, что столько времени займет, возможно, что вообще не стал бы заниматься Улыбка

Выкладываю тестовый файл, созданный моим Excel-конвертером. Просьба посмотреть, насколько корректно этот файл читается. Особенно интересует работа OLE-объекта.

К сожалению, полностью корректной работы сохраненных OLE-объектов не удалось. Например, если по обычному OLE-объекту два раза щелкнуть, то мы войдем в режим редактирования. Если же щелкнуть два раза по OLE-объекту в файле, созданном конвертером, то откроются свойства изображения. Чтобы все-таки войти в редактирование объекта, надо щелкнуть по нему правой кнопкой и выбрать "Объект Точечный рисунок" - "Изменить". Проблема здесь в формуле, присвоенной объекту: "=ВНЕДРИТЬ("Paint.Picture";"")" В двоичном представлении формулы есть два идентификатора неизвестного происхождения. Приходится их просто писать нулевыми - поэтому двойной клик не работает.

Проверял файл в Excel2000 и Excel2003 - вроде нормально работает.
  

Dest.rar ( 5 KB | Загрузки )
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #1 - 16. Августа 2007 :: 19:42
Печать  
А смысл? цель?
Ужаст, ты вроде спец хороший по С++, может че слабаем?
« Последняя редакция: 17. Августа 2007 :: 15:54 - trdm »  
Наверх
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #2 - 16. Августа 2007 :: 19:44
Печать  
trdm писал(а) 16. Августа 2007 :: 19:42:
А смысл? цель?
Удаст, ты вроде спец хороший по С++ может че слабаем?

Цель - замена Мокселю + построитель отчетов.
Что предлагаешь слабать? Улыбка
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #3 - 16. Августа 2007 :: 19:48
Печать  
Да вот тоже прикалываюсь, практически каждый вечер...
  

QPrintTable.JPG ( 58 KB | Загрузки )
QPrintTable.JPG
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #4 - 16. Августа 2007 :: 19:49
Печать  
тока решил давить на кросплатформенность и библу выбрал QT от тролей.
  
Наверх
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #5 - 16. Августа 2007 :: 19:50
Печать  
trdm писал(а) 16. Августа 2007 :: 19:48:
Да вот тоже прикалываюсь:
практически каждый вечер...

И насколько продвинулся?
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #6 - 16. Августа 2007 :: 19:54
Печать  
trdm писал(а) 16. Августа 2007 :: 19:49:
тока решил давить на кросплатформенность и библу выбрал QT от тролей.

Я, в основном, сначала все на MFC делал. Теперь понемного ползу тоже к максимальной отвязанности от платформы. Ухожу от MFC в пользу STL и Boost (полностью кроссплатформенны). Остается GUI, но его можно сделать максимально легким для портирования (как раз при помощи абстрактных фабрик, про которых речь идет в соседней ветке  Смех).

QT как-то не вставляет использовать. У них либо GPL, либо очень дорого. Хочется чего-то посвободнее. Мне больше нравится лицензия BSD и подобные. А оно с QT слабосовместимо.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #7 - 16. Августа 2007 :: 19:56
Печать  
Да слабовато пока (, тут еще паралельно нужно тролевскую либу учить.
Но контрол этот я вруопашную слабал, пока разобрался что да как....
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #8 - 16. Августа 2007 :: 20:00
Печать  
Uzhast писал(а) 16. Августа 2007 :: 19:54:
QT как-то не вставляет использовать..

Мне нравится кутя (на лицензию я пока не обращаю внимание), но стараюсь сильно не завязываться на неё пополной.
+ кросплатформенность дошла до смены студии, сам видишь, ваяю в кодеблоке )))
А насчет внедрения OLE объектов, тут ммм думаю что справлюсь кутешними виджетами..
  
Наверх
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #9 - 16. Августа 2007 :: 20:04
Печать  
trdm писал(а) 16. Августа 2007 :: 20:00:
Мне нравится кутя (на лицензию я пока не обращаю внимание), но стараюсь сильно не завязываться на неё пополной.
+ кросплатформенность дошла до смены студии, сам видишь, ваяю в кодеблоке )))

Да уж, вижу Улыбка Даж завидую Подмигивание Давно хотелось линукс поставить и поиграться, но все никак не получается. Хотя, слышал, многие прекрасно пишут в Windows кроссплатформенно.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #10 - 16. Августа 2007 :: 20:06
Печать  
Uzhast писал(а) 16. Августа 2007 :: 20:04:
trdm писал(а) 16. Августа 2007 :: 20:00:
Мне нравится кутя (на лицензию я пока не обращаю внимание), но стараюсь сильно не завязываться на неё пополной.
+ кросплатформенность дошла до смены студии, сам видишь, ваяю в кодеблоке )))

Да уж, вижу Улыбка Даж завидую Подмигивание Давно хотелось линукс поставить и поиграться, но все никак не получается. Хотя, слышал, многие прекрасно пишут в Windows кроссплатформенно.

хм, линукс у меня тока на VMWare крутится пока, SUSE & Ubuntu, а пишу в винде, так удобнее...
  
Наверх
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #11 - 16. Августа 2007 :: 20:13
Печать  
Значит так. У моего проекта - лицензия BSD. Значит, код можно использовать свободно. Также готов оказать любую помощь по использованию кода. Наверняка тебе ведь понадобятся конверторы для мокселя и excel'я? Особенно с Excel'ем много гемора - там, фактически, надо поддерживать два параллельных формата: сам Excel (BIFF8) и Escher - тоже нехилый формат для хранения внедренных объектов.

Кстати, смотрел в qt1l поддержку Мокселя - у меня кое в чем корректнее. Так что мой код пригодится по любому.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #12 - 16. Августа 2007 :: 20:20
Печать  
Спасибо.
Думаю попозжа пересечемся. Я пока с ГУем балуюсь, скоро наполнением займусь
ну я спать
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #13 - 17. Августа 2007 :: 15:56
Печать  
Uzhast писал(а) 16. Августа 2007 :: 20:13:
....Кстати, смотрел в qt1l поддержку Мокселя - у меня кое в чем корректнее. Так что мой код пригодится по любому.

Ты ничего не путаешь? может в 2С смотрел?
  
Наверх
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #14 - 17. Августа 2007 :: 15:58
Печать  
trdm писал(а) 17. Августа 2007 :: 15:56:
Uzhast писал(а) 16. Августа 2007 :: 20:13:
....Кстати, смотрел в qt1l поддержку Мокселя - у меня кое в чем корректнее. Так что мой код пригодится по любому.

Ты ничего не путаешь? может в 2С смотрел?

В репозитории qt1l смотрел.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #15 - 17. Августа 2007 :: 16:01
Печать  
Uzhast писал(а) 17. Августа 2007 :: 15:58:
В репозитории qt1l смотрел.

Тут?: https://qt1l.svn.sourceforge.net/svnroot/qt1l/trunk
  
Наверх
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #16 - 17. Августа 2007 :: 16:09
Печать  
trdm писал(а) 17. Августа 2007 :: 16:01:
Uzhast писал(а) 17. Августа 2007 :: 15:58:
В репозитории qt1l смотрел.

Тут?: https://qt1l.svn.sourceforge.net/svnroot/qt1l/trunk

Да вроде. Только что-то  сейчас уже не могу конкретный файл найти...
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #17 - 17. Августа 2007 :: 16:21
Печать  
Вот это я, кажется, когда-то смотрел:
http://qt1l.svn.sourceforge.net/viewvc/qt1l/branches/qt1l-0_3/qt1l/src/data/moxc...
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Внедренные в XLS объекты
Ответ #18 - 18. Августа 2007 :: 10:57
Печать  
Uzhast писал(а) 16. Августа 2007 :: 16:27:
Выкладываю тестовый файл, созданный моим Excel-конвертером. Просьба посмотреть, насколько корректно этот файл читается. Особенно интересует работа OLE-объекта.

На 2003 sp2 все ок, т.е. так, как ты и описал.
Кстати, если скопировать OLE объект рядом, то на копии двойнок клик уже работает как обычно.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #19 - 18. Августа 2007 :: 11:02
Печать  
kms писал(а) 18. Августа 2007 :: 10:57:
На 2003 sp2 все ок, т.е. так, как ты и описал.
Кстати, если скопировать OLE объект рядом, то на копии двойнок клик уже работает как обычно.

Спасибо Улыбка

PS. Кстати, как обычно двойной клик работает, если хотя бы один раз войти в режим редактирования объекта. А если сразу скопировать/вставить, то вставится только картинка Улыбка
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Внедренные в XLS объекты
Ответ #20 - 18. Августа 2007 :: 11:08
Печать  
Uzhast писал(а) 18. Августа 2007 :: 11:02:
PS. Кстати, как обычно двойной клик работает, если хотя бы один раз войти в режим редактирования объекта. А если сразу скопировать/вставить, то вставится только картинка Улыбка

Я пошел другим путем Улыбка
- тянул с контролом, тада все сразу нормально.

Но если эту копию (рабочую) "скопировать"/"вставить", не зайдя в режим редактирования, - то опять ничего путного не будет.
Короче, обыграцца можно, спасибо Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #21 - 18. Августа 2007 :: 11:13
Печать  
kms писал(а) 18. Августа 2007 :: 11:08:
Uzhast писал(а) 18. Августа 2007 :: 11:02:
PS. Кстати, как обычно двойной клик работает, если хотя бы один раз войти в режим редактирования объекта. А если сразу скопировать/вставить, то вставится только картинка Улыбка

Я пошел другим путем Улыбка
- тянул с контролом, тада все сразу нормально.

Но если эту копию (рабочую) "скопировать"/"вставить", не зайдя в режим редактирования, - то опять ничего путного не будет.
Короче, обыграцца можно, спасибо Улыбка

  

stol.gif ( 6 KB | Загрузки )
stol.gif
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #22 - 18. Августа 2007 :: 11:14
Печать  
kms писал(а) 18. Августа 2007 :: 11:08:
Я пошел другим путем Улыбка
- тянул с контролом, тада все сразу нормально.

Хм, а я и не знал про такое Улыбка
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #23 - 18. Августа 2007 :: 11:34
Печать  
Uzhast,  аська есть, стукнись, плз..
не очень я силен в c++ ((((
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #24 - 18. Августа 2007 :: 11:45
Печать  
Uzhast писал(а) 16. Августа 2007 :: 20:13:
Значит так. У моего проекта - лицензия BSD. Значит, код можно использовать свободно. Также готов оказать любую помощь по использованию кода. Наверняка тебе ведь понадобятся конверторы для мокселя и excel'я? Особенно с Excel'ем много гемора - там, фактически, надо поддерживать два параллельных формата: сам Excel (BIFF8) и Escher - тоже нехилый формат для хранения внедренных объектов.

Кстати, смотрел в qt1l поддержку Мокселя - у меня кое в чем корректнее. Так что мой код пригодится по любому.

Кстати насколько твой код отвязан от КОНКРЕТНЫХ библиотек, я имею ввиду ГУИ конечно надо чем-то рисовать, но остальные объекты: Списки, структуры и прочее...
  
Наверх
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #25 - 18. Августа 2007 :: 11:54
Печать  
trdm писал(а) 18. Августа 2007 :: 11:45:
Кстати насколько твой код отвязан от КОНКРЕТНЫХ библиотек, я имею ввиду ГУИ конечно надо чем-то рисовать, но остальные объекты: Списки, структуры и прочее...

Т.е. контейнеры Улыбка В отношении контейнеров я полностью перехожу на STL (с примесью boost'а - boost::array, например). Если где и остались следы контейнеров MFC, то не надолго Улыбка У STL по сравнению с MFC куда больше возможностей + STL - это стандарт C++, т.е. есть на любом нормальном компиляторе. Boost изначально разрабатывался с учетом максимальной кроссплатформенности. + в нем до фига разных крайне интересных вещей.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Внедренные в XLS объекты
Ответ #26 - 18. Августа 2007 :: 12:10
Печать  
Я пытаюсь максимально независимо писать, ради этого не стал опираться QT на сколько это возможно, например для секций и групп строк/столбцов сделал свои сортируемые списки-деревья на основе структур/классов, для строк/столбцов свои двусвязные с "условно ускоренным" поиском и т.п.
Смысля для меня есть: шишко-руко-набивание и проффесиональной знакомство с С++.
сам понимаешь, когда ловишь и разруливаешь свой первый fault segmentation или аксесс волитейшн, испытываешь и удовольствие и гордость ))).
единственное от чего не смог полностью отвязаться, так э
то от qDebug(), уж очень удобная штучка )))).
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать