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

Вниз

Помогите начать работать с книгами exel   Найти похожие ветки 

 
Reaktor   (2006-07-31 14:33) [0]

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


 
stud ©   (2006-07-31 14:35) [1]

посмотри в ole.
набери нужный макрос в экселе, подреактируй если нужно синтаксис


 
Reaktor   (2006-07-31 14:54) [2]

Я хотел это научиться делать из дельфийской проги, а не из вижуал бейсика.
А что такое OLE?


 
stud ©   (2006-07-31 15:02) [3]

ты хочеш напрямую работать с офисом или с помщью компанент?
через оле собственно и происходит работа с приложениями офиса ( и другими в принципе тоже)


 
Reaktor   (2006-07-31 15:12) [4]

С помощью компанент.


 
stud ©   (2006-07-31 15:53) [5]

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


 
VadimSpb   (2006-07-31 17:12) [6]

Посмотри http://delphiworld.narod.ru/dw.html
Есть хорошая книга
Н.Елманова, С.Трепалин, А.Тенцер
"Delphi и технология COM" 2003г. Изд-во ПИТЕР


 
Anatoly Podgoretsky ©   (2006-07-31 19:49) [7]

Reaktor   (31.07.06 15:12) [4]
Бросаешь TExcelApplication на форму и работаешь, все методы и свойства описаны у Микрософт. В Дельфи информации нет, поскольку это к Дельфи не относится. Это COM, для OLE точно также, только создаешь ручками и информация опять у Микрософта.


 
VadMS   (2006-09-26 23:08) [8]

Обращение к Excel из DELPHI
В данном обзоре рассмотрены основные конструкции, позволяющие получить доступ к книге Excel из DELPHI.
Организация доступа к книге EXCEL
Для взаимодействия с MS excel в программе необходимо использовать модуль ComObj
uses ComObj;
и объявить переменную для доступа к MS excel следующего типа:
var Excel: Variant;
Инициализация переменной Excel в простейшем случае можно осуществить так:
   Excel := CreateOleObject("Excel.Application");
Создание новой книги:
   Excel.Workbooks.Add;
Открытие существующей книги (где path - путь к фалу с расширением xls.):
  Excel.Workbooks.Open[path];
Открытие существующей книги только для чтения:
  Excel.Workbooks.Open[path, 0, True];
Закрытие Excel:
  Excel.ActiveWorkbook.Close;
   Excel.Application.Quit;

Блокировка запросов (подтвеждений, уведомлений) Excel, например, запретить запрос на сохранение файла:
  Excel.DisplayAlerts:=False;
Отображаем Excel на экране:
  Excel.Visible := True;
или скрываем:
  Excel.Visible := False;
Печать содержимого активного листа excel:
  Excel.ActiveSheet.PrintOut;

Чтение/запись данных в EXCEL
Доступ к ячейке в текущей книге Excel можно осуществить следующим образом:
  Excel.Range["B2"]:="Привет!"; // - для записи значения в ячейку или
   s:=Excel.Range["B2"]; // - для чтения,

где B2 - адрес ячейки.

Или используя стиль ссылок R1C1:
   Excel.Range[excel.Cells[2, 2]]:="Привет!";, где [2, 2] - координата ячейки.

Вообще, ячейке Excel можно присваивать любое значение (символьное, целое, дробное, дата) при этом Excel установит форматирование в ячейке применяемое по умолчанию.
Формат ячеек в EXCEL
Выделить (выбрать) группу ячеек для последующей работы можно так:
 Excel.Range[Excel.Cells[1, 1], Excel.Cells[5, 3]].Select;
или
  Excel.Range["A1:C5"].Select;
при этом будет выделена область находящаяся между ячейкой A1 и C5.
После выполнения выделения можно установить:
1) объединение ячеек
  Excel.Selection.MergeCells:=True;
2) перенос по словам
  Excel.Selection.WrapText:=True;
3) горизонтальное выравнивание
  Excel.Selection.HorizontalAlignment:=3;
при присваивании значения 1 используется выравнивание по умолчанию, при 2 - выравнивание слева, 3 - по центру, 4 - справа.
4) вериткальное выравнивание
  Excel.Selection.VerticalAlignment:=1;
присваиваемые значения аналогичны горизонтальному выравниванию.
5) граница для ячеек
  Excel.Selection.Borders.LineStyle:=1;
При значении 1 границы ячеек рисуются тонкими сплошными линиями.
Кроме этого можно указать значения для свойства Borders, например, равное 3. Тогда установится только верхняя граница для блока выделения:
  Excel.Selection.Borders[3].LineStyle:=1;
Значение свойства Borders задает различную комбинацию граней ячеек.
В обоих случаях можно использовать значения в диапазоне от 1 до 10.

Использование паролей в EXCEL
Установка пароля для активной книги может быть произведена следующим образом:

try
  // попытка установить пароль
  Excel.ActiveWorkbook.protect("pass");
except
  // действия при неудачной попытке установить пароль
end;

где pass - устанавливаемый пароль на книгу.
Снятие пароля с книги аналогично, использовуем команду
Excel.ActiveWorkbook.Unprotect("pass");
где pass - пароль, установленный для защиты книги.
Установка и снятие пароля для активного листа книги Excel производится командами
Excel.ActiveSheet.protect("pass"); // установка пароля
Excel.ActiveSheet.Unprotect("pass"); // снятие пароля

где pass - пароль, установленный для защиты книги.
Вспомогательные операции в EXCEL
Удаление строк со сдвигом вверх:
   Excel.Rows["5:15"].Select;
   Excel.Selection.Delete;

при выполнении данных действий будут удалены строки с 5 по 15.
Установка закрепления области на активном листе Excel

    // снимаем закрепление области, если оно было задано
  Excel.ActiveWindow.FreezePanes:=False;
    // выделяем нужную ячейку, в данном случае D3
  Excel.Range["D3"].Select;
    // устанавливаем закрепление области
  Excel.ActiveWindow.FreezePanes:=True;



Запись макроса
excelapplication1.modules.add(emptyparam,emptyparam,1);
with excelworkbook1.vbproject.vbcomponents.item("module1").codemodule do
begin
addfromstring("sub macro1()"+#13+
"dim ch as chartobject");
end;


Выполнить:
excelapplication1.run("macro1");

Удачной работы!

За доп. вопросами обращайтесь на miskyi@ukr.net



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

Форум: "Базы";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.037 c
2-1162886946
konstr
2006-11-07 11:09
2006.11.26
Blob и SQL


15-1163011947
AntiUser
2006-11-08 21:52
2006.11.26
Самые опасные порты?


2-1163155374
Григорий
2006-11-10 13:42
2006.11.26
Шрифты


6-1152000505
Ildar
2006-07-04 12:08
2006.11.26
NetShareAdd используя 502 структуру


2-1163094373
yuraspb
2006-11-09 20:46
2006.11.26
У кого какие мысли?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский