Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отчеты в Excel – несоответствие между Exc97 и 2003 
:(
    Опции темы
Оленька
Дата 4.7.2005, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день.
Я обращалась недавно к вам с вопросом о формировании отчетов в excel. Все отлично работает. Но возникла заковыка – есть еще такие компьютеры на планете, которые тянут Windows98 и Office97. И как не прискорбно, мне нужно ставить программу именно на такой машине.
Сразу же вылезли глюки, связанные с тем, что СУБД у меня – Access2003. Я не отчаялась – создала на свое машине виртуальный диск с Windows98 и Office97, Delhi поставила 7-ой.
Но возникла ошибка с которой я не представляю – как бороться smile
Код

ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(ex_file2, 1));

Ошибка типа EOleException «использован старый формат, либо библиотека имеет неверный тип».
Заранее благодарю. smile


PM MAIL   Вверх
YurikGL
Дата 5.7.2005, 08:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Работаю через компоненты для Office2000 и проблем нет.
  Вверх
~FoX~
Дата 5.7.2005, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 4
Всего: 68



Оленька
Не юзай VCL работай через ComObj

Код

uses
  ComObj;

var
  ExApp: OLEVariant;
begin
  try
    ExApp := CreateOleObject('Excel.Application');
  except
    Exit;
  end;

И поехали. А вообще аксес сам умеет экспорт таблиц делать.

Это сообщение отредактировал(а) ~FoX~ - 5.7.2005, 09:02


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Оленька
Дата 5.7.2005, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



YurikGL, а сам офис у тебя установлен 97 или 2000?
FoX, я работаю через ComObj:
Код

uses
  OleServer, ComObj, Excel97;
var
    ExcelApplication1: TExcelApplication;
    ExcelWorkbook1: TExcelWorkbook;
    ExcelWorksheet1: TExcelWorksheet;
begin
    try
      begin
        ExcelApplication1.Connect;
        fl_rep:=true;
      end;
    except
      ShowMessage('Нет доступа к серверу Excel');
    end;
    if fl_rep = true then
      begin
          [color=red]ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(ex_file, 1)); //ошибка тут [/color]
          ExcelApplication1.Visible[1]:=true;
        end;
end;

PM MAIL   Вверх
offline
Дата 5.7.2005, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код


interface

uses
  ..., excel97, excel2000, excelXP, ...

...

procedure TfrmObmen.butToExcelClick(Sender: TObject);
var
  MyExcel: Variant;
begin
  MyExcel:=CreateOleObject('Excel.Application');//переменная Экселя
  MyExcel.WorkBooks.Add;//Добавить документ
  ...
  ну и здесь твари что хочешь через MyExcel
  MyExcel.Columns['A:E'].NumberFormat := '@';//истановить диапазон как текст
  ...
end;


Это сообщение отредактировал(а) kirilllius - 5.7.2005, 10:06
PM MAIL   Вверх
Оленька
Дата 5.7.2005, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Большое спасибо, kirilllius. smile

PM MAIL   Вверх
offline
Дата 5.7.2005, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну что, заработало или smile ?
PM MAIL   Вверх
Оленька
Дата 5.7.2005, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



да вроде заработало, но так все прийдеться переделывать. Вот так всегда - начинаешь использовать стандартные компоненты, а потом все равно приходиться писать все вручную smile
PM MAIL   Вверх
offline
Дата 5.7.2005, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Красота и работоспособность, требуют жертв smile
PM MAIL   Вверх
Akella
Дата 5.7.2005, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



kirilllius
Цитата(kirilllius @ 5.7.2005, 10:05)
uses
  ..., excel97, excel2000, excelXP, ...

в этом случае всё будет прихватываться из excel97 в первую очередь, что не найдено - в excel2000, а уж потом в excelXP - каша получается
PM MAIL   Вверх
YurikGL
Дата 5.7.2005, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

Репутация: нет
Всего: 2



У меня установлены компоненты для Office2000. А экспорт вроде работает и в 97 и в 2000 и в XP....
Хотя именно с Excel я бы посоветовал работать через CreateOleObject
--------------------
 
PM MAIL WWW ICQ   Вверх
Akella
Дата 6.7.2005, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Через ранее связывание работает быстрее, хотя бы потому, что ошибки проверяются уже на стадии компилирования
PM MAIL   Вверх
Оленька
Дата 6.7.2005, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



а что за ранее связывание?
PM MAIL   Вверх
Akella
Дата 6.7.2005, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Ну, когда ты кладёшь компоненту TExcelApplicatin - это раннее связывание


Цитата(kirilllius @ 5.7.2005, 10:05)
var
  MyExcel: Variant;
begin
  MyExcel:=CreateOleObject('Excel.Application');//переменная Экселя

это позднее связывание
все проверки на ошибки, например, на соответствие типов проверяются на стадии выполнения проги
PM MAIL   Вверх
Оленька
Дата 6.7.2005, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



так вот у меня возникла ошибка, когда я пыталась сделать ранее связывание в excel97. Я вначале так и делала, намного удобнее и в excel2003 все отлично работало, а теперь приходиться переписывать smile(((((((
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


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

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


 




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


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

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