Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OLE Excel сохранение в файл, некорреектно сохраняет 
:(
    Опции темы
JUmPER
Дата 3.10.2006, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



при использовании OLE с диаграммой excel сохранение не работает корректно
в результате получается файл, который excel не может открыть (ничего не говорит, просто открывается пустой воркспейс -- т.е. без документа)
Код

Dim OleWorkBook As Excel.WorkBook

Set OleWorkBook = oleStatisticsChart.object

Call OleWorkBook.SaveAs(cdMain.FileName)
Call OleWorkBook.Close

--------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной
PM MAIL   Вверх
mihanik
Дата 3.10.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Вот смотри...
У меня есть на форме OLE-объект с именем OLE1
НЕ ВАЖНО КАКОЙ!!!

Я его буду сейчас сохранять...

Код

Private Sub OLEFileSaveAs()
Dim fnum as Integer
     on error goto Cancel
     fnum = freefile
     commondialog1.showsave
     ' Вывод на экран диалогового окна Save as
     open commondialog1.filename for binary as #fnum
     ole1.savetofile (fnum)
     close #fnum
     exit sub
Cancel:
     msgbox "Не смог сохранить файл...
     close #fnum
end sub ()


Вопросы ещё есть?

Это сообщение отредактировал(а) mihanik - 3.10.2006, 13:06


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
JUmPER
Дата 3.10.2006, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



сохранять-то сохраняет (файл появляется), да вот самим экселем его не открыть -- ругается.
--------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной
PM MAIL   Вверх
mihanik
Дата 3.10.2006, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Угу...
Понятно.
Это он просто в своём внутреннем формате сохраняет.
А чтобы ехелем открыть надо что-то типа такого..

Код

Private Sub Command1_Click()

Dim wBook As Workbook

    Set wBook = OLE1.object
    
    wBook.SaveAs FileName:= _
        "ИМЯ ФАЙЛА", FileFormat:=xlNormal _
        , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False
    

    wBook.Close
    Set wBook = Nothing
End Sub


Проверил.
У меня работает.


В референсах только ехель подключить надо...

Добавлено @ 15:18 
Блин...
Извини! Что-то у меня подглючивает...
Буду думать...


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
JUmPER
Дата 3.10.2006, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



у меня то же, что и было вначале (excel не ругается, но файл не открывает)
--------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной
PM MAIL   Вверх
mihanik
Дата 3.10.2006, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Вот так работает!!!!!


Код

Option Explicit

Private Sub Command1_Click()
Dim OleWorkBook As Excel.Workbook

Set OleWorkBook = OLE1.object

OleWorkBook.SaveAs "C:\Documents and Settings\Миханик\Desktop\222.xls", FileFormat:=35 _
        , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False

Call OleWorkBook.Close


End Sub



FileFormat:=35  - это формат книги ехеля...

У меня работает.
Лист правда был без диаграммы...

ПРОВЕРЬ И ОТПИШИСЬ О РЕЗУЛЬТАТАХ!!!


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
JUmPER
Дата 3.10.2006, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



"Microsoft Excel for windows - обнаружена ошибка...Отправить отчёт..." при попытке его открыть excel'ем smile 
--------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной
PM MAIL   Вверх
mihanik
Дата 4.10.2006, 06:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Хм... smile 

Если не сложно вышли мне "работающий" кусок товего кода.
Лучше в виде проекта VB.

Поближе посмотреть хочу... И  smile  его...


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
JUmPER
Дата 4.10.2006, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



я специально создал новый прект и вставил в него твой код
поменял только имя файла
--------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной
PM MAIL   Вверх
mihanik
Дата 4.10.2006, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Странно... smile  smile 

Когда я создаю лист ехеля  и сохраняю его, но при этом на листе нет диаграмм, то лист потом нормально открывается.
Если же я вставляю диаграмму, то действительно ехель обрушивается...
Может диаграмму ехеля стоит внедрять как отдельный ОЛЕ-объект?

Будем думать... smile 

Офис у тебя какой?
У меня 2003...


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
mihanik
Дата 4.10.2006, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Смотри!!!
У меня работает даже с диаграммой !!!


Код

Option Explicit

Private Sub Command1_Click()
Dim OleWorkBook As Excel.Workbook

Set OleWorkBook = OLE1.object

OleWorkBook.SaveAs "C:\Documents and Settings\Миханик\Desktop\222.xls", FileFormat:=-4143 _
        , Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False

Set OleWorkBook = Nothing

End Sub


Добавлено @ 11:01 
Т.е. играем с форматом файла...


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
JUmPER
Дата 4.10.2006, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



то же самое
видимо, мой офис не работает как надо (у меня 2000ый)
--------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной
PM MAIL   Вверх
mihanik
Дата 4.10.2006, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Знаешь, что!!!

Запусти ехель. нажми <Alt><F11>.
Зайдёшь во втроенный в ехель VB.
Выбери View / Object Browser/
При помощи поиска найди описание xlNormal.
Он нам напрямую не нужен. Нам нужен класс XLFileFormat.


Далее посмотри на то, какие форматы файлов поддерживает твой ехель.
У меня получилось около 40-50 форматов.
В своей программе после FileFormat:= попробуй использовать различные значения.

ЗАМЕЧАНИЕ!!!
В программе используй не имена констант, а их числовые значения (видны внизу при выделении конкретной константы.)

Для 2003 офиса у меня получилась константа с именем xlWorkbookNormal.


Const xlWorkbookNormal = -4143 (&HFFFFEFD1)

Поэксперементируй.

Команду Call OleWorkBook.Close НЕ ИСПОЛЬЗУЙ!!!

И ещё!!!

В референсах не забывай подключать ехель.

У меня это Microsoft Excel 11.0

Прицепил свой проект. Может поможет...

Это сообщение отредактировал(а) mihanik - 4.10.2006, 11:59

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  ole.rar 3,06 Kb


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
JUmPER
Дата 4.10.2006, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 22.8.2006

Репутация: 1
Всего: 3



в списке поддерживаемых есть та же константа с тем же значением,
но результат тот же -- excel открывается с пустым воркспейсом
так что скорее всего это баги в самом экселе...

PS: в приаттаченом тобой проекте одного из файлов формы не хватает (не текстового -- с этим в порядке)

Добавлено @ 12:47 
кстати, файл всегда получается одного размера -- 7.680к
--------------------
Существует 10 типов людей: те, которые понимают двоичную систему, и те, которые ее не понимаютСуществует 10 типов людей: те, кто понимают троичную систему, те, кто ее не понимают и те, кто путает ее с двоичной
PM MAIL   Вверх
mihanik
Дата 4.10.2006, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



А вот так...

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  ole.rar 3,04 Kb


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0557 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.