Текущий архив: 2006.11.05;
Скачать: CL | DM;
ВнизПомогите пожалста больше немогу Найти похожие ветки
← →
vitaly27 (2006-10-19 16:26) [0]Ситуация такая, существует большое количество .OLE файлов(excel таблицы) нужно распечатать это дело из delphi.
с екселевским файлом пробовал все работает, ole не могу????
Заранее спасибо.
← →
Elen © (2006-10-19 16:31) [1]
> .OLE файлов
А что это расширение такое А? Чего в OLE лезть если экзел распечатывать по другому научился?
← →
Сергей М. © (2006-10-19 16:31) [2]
> .OLE файлов(excel таблицы)
Эт что еще за ".OLE файлы" такие ?
← →
Сергей М. © (2006-10-19 16:35) [3]
> vitaly27 (19.10.06 16:26)
Файловый образ Excel-документа представляет собой файл в формате MS structured storage. Обзови этот файл хоть "MyExcel.ЧертТеЧтоИСБокуБантик" - он от этого не перестанет быть файловым образом Excel-документа)
← →
vitaly27 (2006-10-19 16:36) [4]ole это расширение файлов, в OLE контейнер можно поместить разного рода "объект" в данном случае excel
← →
vitaly27 (2006-10-19 16:40) [5]Это я знаю ну а как его из дельфей распечатать?
← →
Сергей М. © (2006-10-19 16:40) [6]
> vitaly27 (19.10.06 16:36) [4]
> ole это расширение файлов
Оно откуда свалилось ?
Цитируй док-цию, где фигурирует именно это расширение именно для такого рода инф-ции ...
← →
Сергей М. © (2006-10-19 16:42) [7]
> как его из дельфей распечатать?
Ты с дуба упал ?)
Печатью xls-документов заведует сам Excel. Ну и еще "прихлебатели" а-ля OpenOffice)
← →
vitaly27 (2006-10-19 16:45) [8]Установите в диалогах в свойстве Filter: "объекты OLE" | *.ole и все файлы |*.* и тд. Источник параграф 6.4 Внедрение и связывание объектов OLE;стр 420 "Програмирование в Delphi5 - А.Я. Архангельский"
← →
vitaly27 (2006-10-19 16:49) [9]procedure TForm1.BitBtn4Click(Sender: TObject);
var
ExcelApp: OLEVariant;
begin
ExcelApp :=CreateOleObject("excel.Application");
try
ExcelApp.Workbooks.Open("c:\mydoc.xls");
ExcelApp.ActiveSheet.PageSetup.Orientation := xlLandscape;
excelApp.Documents.Item.PrintOut
//ExcelApp.Worksheets.PrintOut;
finally
if not VarIsEmpty(ExcelApp) then
begin
ExcelApp.Quit;
ExcelApp := Unassigned;
end;
end;
Из моей формы xls док-ты печатает нормально а когда я открываю ole выдет ошибку.
← →
Сергей М. © (2006-10-19 16:52) [10]
> vitaly27 (19.10.06 16:45) [8]
Ок.
Я запустил Ёхель97, бо под руекой оказался (чем он плох ?), выбрал меню "Open .."
Вылупился на явившийся мне список дифолтных расширений файлов, которые Ёхель якобы "понимает" - в упор не вижу никаких "объекты OLE" | *.ole"
Я заболел ?
> А.Я. Архангельский
Фтопку.
← →
Сергей М. © (2006-10-19 16:56) [11]
> vitaly27 (19.10.06 16:49) [9]
> Из моей формы xls док-ты печатает нормально
Галиматья.
при чем здесь "форма" ? При чем здесь твоя она или не твоя ?
> я открываю
> > ole выдет ошибку
Значит файл с расширением *.ole , который ты пытаешься открыть, не содержит образ xls-документа в документированном Майкрософтом формате.
← →
infom © (2006-10-19 17:02) [12]2 vitaly27
Тебе просто надо из файла выгруженного из OLE с Excell"ем извлечь сами файлы с экселем. Я таким образом как-то извлекал рисунки из OLE поля в Access базе.
Отсекал сначала файла мета информацию и с конца. Вот код
AStream := TMemoryStream.Create;
BStream := TMemoryStream.Create;
for i:= 0 to ADOQuery.RecordCount -1 do
begin
AStream.Clear;
BStream.Clear;
ADOQueryImage.SaveToStream(AStream);
AStream.Position := 78;
BStream.CopyFrom(AStream, AStream.Size - 99);
BStream.SaveToFile(edCatalog.Text+ADOQueryindex.AsString+".bmp");
ADOQuery.Next;
end;
← →
vitaly27 (2006-10-19 17:16) [13]ну значит непоможите
← →
Наиль © (2006-10-19 17:25) [14]
> vitaly27 (19.10.06 16:26)
Для начала тебе нужно уяснить, что OLE - это всегда данные + приложение-сервер (как правило, не твоё), которое умеет обрабатывать эти данные (в данном случае - печатать). Другими словами, не будет Excel"я - не будет будет работать OLE основаное на Excel. Если будешь печатать XLS-документы через Excel, получишь тот же результат. А если не видно разницы, то зачем платить больше? (с) Дося.
Страницы: 1 вся ветка
Текущий архив: 2006.11.05;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.036 c