Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.08;
Скачать: CL | DM;

Вниз

Delphi & Excel   Найти похожие ветки 

 
pavel_guzhanov ©   (2003-08-25 17:49) [0]

Я пользуюсь Office XP и Delphi7
Небольшой кусочек функции:
var
m_XLApp: TExcelApplication;
m_Worksheet: ExcelWorksheet;
m_WorkBook: ExcelWorkbook;
range:ExcelRange;
Cell1, Cell2:OleVariant
begin
if not Assigned(m_XLApp) then //если Excel не запущен, запускаем его
m_XLApp:=TExcelApplication.Create(Self);

m_XLApp.Visible[0]:=true; // делаем его видимым
m_XLApp.Workbooks.Add(EmptyParam,1); //добавляем рабочую книгу
// добавляем рабочий лист
m_Worksheet:=ExcelWorksheet(m_XLApp.Workbooks.Item[OleVAriant(1)].Work sheets.Item[OleVAriant(1)]);
// Вот до сюда все работает, далее делаю
Cell1:= m_WorkBook.WorkSheets[1].Cells[1,1];

Cell2 := m_WorkBook.WorkSheets[1].Cells[5, 5];
Range := WorkBook.WorkSheets[1].Range[Cell1, Cell2];

Теперь ругается на Undeclared Identifier Cells
Я предполагаю, что неправильно создаю в Workbook Worksheet, но как его сделать правильно, не могу разобраться.
Или же подскажите как передать данные в определенную ячейку Excel, и как выделить область ячеек для последующих манипуляций с ними


 
Романов Р.В. ©   (2003-08-25 17:59) [1]

Переменная m_WorkBook нигде не присваевается


 
pavel_guzhanov ©   (2003-08-26 08:54) [2]

Я присвоил значение m_Workbook в строке
m_Workbook:=m_XLApp.Workbooks.Add(EmptyParam,1); //добавляем рабочую книгу
После этого ничего не изменилось, также ругается на Undeclared Identifier Cells


 
Space Rover   (2003-08-26 09:53) [3]

Вот так пойдет? Вроде работает... :)

m_XLApp := TExcelApplication.Create(nil);
m_XLApp.AutoConnect := True;
m_XLApp.ConnectKind := ckRunningOrNew;
CoInitialize(nil);
m_WorkBook := m_XLApp.Workbooks.Add(EmptyParam, 0);
m_Worksheet := nil;
m_WorkBook.Activate(0);
m_Worksheet:=m_XLApp.Workbooks.Item[OleVAriant(1)].Worksheets.Item[Ole VAriant(1)] as ExcelWorkSheet;
m_Worksheet.Activate(0);
m_Worksheet.Range[Cell1, Cell2].Value := Value;
Value := m_Worksheet.Range[Cell1, Cell2].Value;
m_Worksheet.PrintPreview(False, 0);


 
Space Rover   (2003-08-26 09:59) [4]

На всякий случай еще можно добавить вот это:
m_XLApp.Visible[0] := True;


 
Flying Home   (2003-08-26 09:59) [5]

1.
ExcApp := CreateOleObject(ExcVer);
ExcApp.Visible := False;
WrkBk := ExcApp.Workbooks.Open(AppPath + "\StencilMonth.xls");
WrkSht := WrkBk.ActiveSheet;

После этого работаем с WrkSht.Cells[i,j]
2.
RangeStr := IntToRange(m + 5, 1) + ":" + IntToRange(m + 5, 35);
WrkSht.Cells.Range[RangeStr].Borders[9].LineStyle := 2;

RangeStr - функция, которая возврвщает строку типа "A1"



Страницы: 1 вся ветка

Текущий архив: 2003.09.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
6-24594
Jao
2003-07-02 14:58
2003.09.08
Indy. TidTCPClient - где ошибка?


14-24640
Прохожий
2003-08-21 08:32
2003.09.08
---|Ветка была без названия|---


1-24462
explorer
2003-08-28 08:54
2003.09.08
Запуск программы с ключем


1-24407
-=@ndrew=-
2003-08-28 09:44
2003.09.08
вопрос по работе с формой.....


1-24410
Dm1625
2003-08-25 13:18
2003.09.08
Класс-оболочка в каждой форме, исходный - один в главной