Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.08;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
14-24626
Romkin
2003-08-21 16:32
2003.09.08
Еще!


1-24495
servs
2003-08-22 18:59
2003.09.08
Глобальный отлов exception


8-24566
Денчез
2003-05-09 20:43
2003.09.08
Как сделать так чтобы окошко появлялось плавно(прелоадер в 3DMark


1-24518
3APA3A
2003-08-27 01:24
2003.09.08
В чем разница?


14-24676
Mr&MsGuns
2003-08-19 14:09
2003.09.08
Империя Билла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский