sonyps4.ru

Delphi выделенный диапазон в excel. Обращение к Microsoft Excel из среды Delphi

Цель работы: научиться настраивать сетевые протоколы серверов и рабочих станций

Оборудование: персональный компьютер с ОС Windows 8.1, WindowsServer

Индивидуальное задание: настроить сетевые протоколы серверов и рабочих станций

Теоретические сведения

Для стандартизации передаваемой по сети информации, разработаны так называемые сетевые протоколы. Протокол представляет собой набор правил и соглашений для оформления и передачи информации по компьютерной сети. Пакет, созданный по выбранному сетевому протоколу, имеет строго определенный формат. Если на компьютерах сети установлен одинаковый сетевой протокол, то они смогут «понимать» друг друга, т.е. читать пакеты.

Иногда, для более надежной передачи данных, протоколы объединяют. Такое объединение носит название стек протоколов.

Примером такого стека протоколов может служить сетевой протокол TCP/IP, состоящий из различных протоколов и служб. Сетевой протокол Microsoft TCP/IP особенно широко используется в сети Интернет. Поэтому, чтобы обеспечить совместимость, локальные сети также используют протокол TCP/IP.

Ход работы

Запуск папки "Сетевые подключения"

Данная процедура используется для запуска папки "Сетевые подключения". Папка "Сетевые подключения" позволяет проверять и настраивать любые подключения к различным сетям, к которым подключен компьютер.

Для выполнения данной процедуры можно использовать любую учетную запись пользователя.

Открытие папки "Сетевые подключения"

Выполните Запуск центра управления сетями и общим доступом

Для запуска центра управления сетями и общим доступом можно использовать следующие способы:

· с помощью панели управления;

· с использованием значка сети в области уведомлений;

· в командной строке.

Запуск центра управления сетями и общим доступом с использованием панели управления

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

2. Выполните одно из указанных ниже действий.

o Если используется представление Панель управления – домашняя страница , в разделе Сеть и Интернет выберите элемент Просмотр состояния сети и задач .

o Если используется Классический вид , выберите элемент .

Запуск центра управления сетями и общим доступом с использованием области уведомлений

1. Щелкните правой кнопкой мыши значок Сеть в области уведомлений панели задач ().

2. Выберите пункт Центр управления сетями и общим доступом .

Запуск центра управления сетями и общим доступом из командной строки



1. В командной строке введите следующую команду (регистр не имеет значения):

2. control.exe /nameMicrosoft.NetworkAndSharingCenter

Продолжить .

Дополнительные указания

· Хотя стандартный пользователь и может открывать центр управления сетями и общим доступом и выполнять некоторые задачи, большинство изменений конфигурации может выполнять только администратор или член группы "Операторы настройки сети".

В области "Задачи" выберите пункт Управление сетевыми подключениями .

Дополнительные указания

· Хотя стандартный пользователь и может открывать папку "Сетевые подключения" и выполнять некоторые задачи, большинство изменений конфигурации может выполнять только администратор или член группы "Операторы настройки сети".

1. Щелкните правой кнопкой мыши подключение, которое требуется настроить, а затем выберите команду Свойства .

2. Если появится диалоговое окно Управление учетной записью пользователя , убедитесь, что действие, указанное в окне, совпадает с тем, которое вы хотите выполнить, и нажмите Продолжить .

3. Выполните одно из указанных ниже действий.

o В случае подключения по локальной сети на вкладке Общие в списке выберите пункт и нажмите кнопку Свойства .

o В случае подключения удаленного доступа, VPN-подключения или высокоскоростного подключения на вкладке Сеть в списке Компоненты, используемые этим подключением выберите пункт Протокол Интернета версии 4 (TCP/IPv4) и нажмите кнопку Свойства .



И нажмите кнопку ОК .

o Если необходимо указать IP-адрес IPv4 или адрес DNS-сервера, выполните следующие действия.

Выберите пункт Использовать следующий IP-адрес и в поле IP-адрес введите IP-адрес, соответствующую маску подсети и адрес шлюза по умолчанию.

Выберите пункт и в полях Предпочитаемый DNS-сервер и Альтернативный DNS-сервер

5. Для настройки параметров DNS, WINS и IP нажмите кнопку Дополнительно .

6. В подключении по локальной сети при выборе параметра Получить IP-адрес автоматически включается вкладка Альтернативная конфигурация . Если компьютер используется более чем в одной сети, используйте эту вкладку для ввода альтернативных параметров IP-адреса. Для настройки параметров DNS, WINS и IP откройте вкладкуНастраиваемый пользователем или Альтернативная конфигурация .

Дополнительные указания

· Параметры Альтернативная конфигурация определяют второй набор параметров протокола IP, который используется при недоступности DHCP-сервера. Это весьма полезно для пользователей портативных компьютеров, которые часто перемещаются между двумя различными сетевыми средами (например, между средой со службой DHCP и средой со статическими IP-адресами).

Настройка TCP/IPv6

1. Выполните действия, описанные в разделе Запуск папки "Сетевые подключения".

2. Щелкните правой кнопкой мыши подключение, которое требуется настроить, а затем выберите команду Свойства .

3. Если появится диалоговое окно Управление учетной записью пользователя , убедитесь, что действие, указанное в окне, совпадает с тем, которое вы хотите выполнить, и нажмите Продолжить .

4. Выполните одно из указанных ниже действий.

o В случае подключения по локальной сети, беспроводного подключения, VPN-подключения или подключения удаленного доступа на вкладке Сеть , в списке Компоненты, используемые этим подключением выберите пункт Протокол Интернета версии 6 (TCP/IPv6) и нажмите кнопку Свойства .

o Если подключение является входящим, см. раздел Настройка использования протокола TCP/IP для входящего подключения.

5. Выполните одно из указанных ниже действий.

o Если необходимо, чтобы параметры IP-адреса назначались автоматически, выберите пункт Получить IPv6-адрес автоматически , и нажмите кнопку ОК .

o Если необходимо указать IPv6-адрес или адрес DNS-сервера, выполните указанные ниже действия.

Выберите пункт Использовать следующий IPv6-адрес и в поле IPv6-адрес введите IP-адрес, соответствующую длину префикса и адрес шлюза по умолчанию.

Выберите пункт Использовать следующие адреса DNS-серверов и в полях Предпочитаемый DNS-сервер и Альтернативный DNS-сервер введите адреса основного и дополнительного DNS-сервера.

6. Чтобы настроить дополнительные параметры IPv6 и DNS, нажмите кнопку Дополнительно .

Дополнительные указания

· Если это возможно, используйте автоматическую настройку параметров протокола IP (DHCP), поскольку при этом устраняется необходимость настройки таких параметров, как IP-адрес, адрес DNS-сервера и адрес WINS-сервера.

· Отчет по практической работе должен содержать следующие пункты:

· - название практической работы;

· - цель работы;

· - краткие теоретические сведения;

· - индивидуальное задание для выполнения работы;

· - краткое описание хода выполнения работы;

· - результаты выполнения работы;

· - выводы.

Приложение А

Настройка параметров протокола TCP/IP для IPv4

Настройка TCP/IPv4

1. Откройте компонент «Сетевые подключения». Для этого нажмите кнопку Пуск и выберите пункт Панель управления. В поле поиска введите адаптер и затем в разделе «Центр управления сетями и общим доступом» выберите команду Отобразить сетевые подключения.

2. Щелкните правой кнопкой мыши изменяемое подключение и затем выберите Свойства. Если отображается запрос на ввод пароля администратора или его подтверждения, укажите пароль или предоставьте подтверждение.

3. Перейдите на вкладку Сеть. В разделе Компоненты, используемые этим подключением щелкните Протокол Интернета версии 4 (TCP/IPv4) или Протокол Интернета версии 6 (TCP/IPv6), а затем нажмите кнопку Свойства.

Диалоговое окно «Свойства сетевого подключения»

4. Чтобы настроить параметры IP-адреса IPv4, выполните одно из действий:

· Для автоматической настройки параметров IP с помощью DHCP щелкните Получить IP-адрес автоматическии нажмите кнопку ОК.

· Для установки IP-адреса вручную щелкните Использовать следующий IP-адрес, затем в поля IP-адрес, Маска подсети, и Основной шлюз введите значения параметров IP-адреса.

5. Чтобы настроить параметры IP-адреса IPv6, выполните одно из действий:

· Для автоматической настройки параметров IP с помощью DHCP щелкните Получить IPv6-адрес автоматически и нажмите кнопку ОК.

· Для установки IP-адреса вручную щелкните Использовать следующий IPv6-адрес, затем в поля Адрес IPv6,Длина префикса подсети и Основной шлюз введите значения параметров IP-адреса.

6. Чтобы указать параметры адреса DNS-сервера, выполните одно из действий:

· Для автоматического получения адреса DNS-сервера с помощью DHCP выберите Получить адрес DNS-сервера автоматически и нажмите кнопку ОК.

· Для установки адреса DNS-сервера вручную щелкните Использовать следующие адреса DNS-серверов, затем в поля Предпочитаемый DNS-сервер и Альтернативный DNS-сервер введите адреса первичного и вторичного DNS-серверов.

Диалоговое окно свойств протокола Интернета версии 4 (TCP/IPv4)

7. Чтобы изменить дополнительные параметры DNS, WINS и IP, нажмите кнопку Дополнительно

Настройка параметров протокола TCP/IP для IPv6

Настройка TCP/IPv6

Для того, чтобы настроить Протокол Интернета версии 6 (TCP/IPv6) - надо в свойствах сетевого подключения кликнуть на компоненте Протокол Интернета версии 6 (TCP/IPv6) и нажать кнопку Свойства. Ставим галочки Получить IPv6-адрес автоматически и Получить адрес DNS-сервера автоматически. В 99% случаев этого будет вполне достаточно. Если Вы хотите использовать какой-то альтернативный DNS-сервер вместо сервера провайдера, то надо поставить галочку Использовать следующие адреса DNS-серверов, и прописать туда адреса:

Для примера, можно использовать DNS-серверы Google: 2001:4860:4860::8888 2001:4860:4860::8844


Практическая работа №30

Настройка рабочих станций

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

Заходим в свойства компьютера на закладку "Имя компьютера" и нажимаем кнопку "Изменить". В данном окне указываем новое имя компьютера (если необходимо) и домен visan.local.

После чего нужно будет указать имя и пароль учетной записи с правами на присоединение к домену.

И если все указано правильно, то мы увидим следующее окно в котором будет надпись "Добро пожаловать в домен visan.local" . Затем нужно будет перезагрузить компьютер.

После перезагрузки компьютера при входе в Windows нужно будет указать имя пользователя и пароль пользователя, которого мы создали ранее в Active Directory. На этом настройка подключения рабочей станции к домену закончена. То же самое необходимо проделать с остальными рабочими станциями.

Настройка средств информационной безопасности

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

Обновление антивирусных баз

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

Рисунок 2.19- Выбор папки сохранения обновленных баз

Чтобы обновления, скачанные одним компьютером с серверов были доступны для остальных компьютеров сети, следует открыть доступ к локальному источнику с обновлениями. Тем самым увеличим скорость обновления антивируса внутри сети и уменьшим нагрузку на пропускную способность интернет-канала. Для этого на прокси-сервере создадим папку с именем AVK и сделаем общий доступ к папке. А на рабочих станциях в параметре обновления необходимо указать в "источнике обновления" пусть к папке на прокси-сервере.

Проверка на вирусы

Необходимо установить периодическую проверку рабочих станций на вирусы. Каждые 7 дней в 14:00 антивирус будет производить проверку рабочих станций на наличие вредоносных программ. Как дополнительную настройку устанавливается флажок на параметре "Выполнять проверку по расписанию, когда компьютер заблокирован или включена экранная заставка". Этот параметр позволит не мешая работнику проверять систему, так как при проверке рабочей станции не исключены под торможения операционной системы, это происходит из-за того что во время проверки Антивирус требует много ресурсов компьютера.

Рисунок 2.20 - Настройка полной проверки

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

Обмен данными с MS Excel в Delphi при помощи OLE .

Здравствуйте уважаемые коллеги!

Все мы рано или поздно сталкиваемся с задачами обмена данных с приложениями пакета MS Office . Одно из них — это MS Excel . И именно о взаимодействии с данным продуктом MS Office пойдет речь в данной статье.

Один из способов взаимодействия Delphi c MS Excel — это подключиться к нему как к OLE объекту.

Итак.
Прежде всего для работы с MS Excel и OLE добавим в секцию Uses модули ComObj и ActiveX .

И первое что нам нужно проверить, а установлен ли MS Excel на компьютере пользователя в принципе.
Для этого воспользуемся функцией CLSIDFromProgID , которая ищет в реестре CLSID для переданного ProgID :
Справка из MSDN: Метод CLSIDFromProgID
Параметры:
pszProgID : POleStr — Строка с именем объекта
clsid : TCLSID — Указатель на структуру TGUID в которую передается найденный объект;
Возвращает:
HRESULT — Результат, который может принимать значения:
S_OK — объект найден;
CO_E_CLASSSTRING — Зарегистрированный CLSID для ProgID является недействительным;
REGDB_E_WRITEREGDB — Ошибка записи CLSID в реестр.
Из перечисленных результатов нам нужен S_OK .
Напишем функию для определения наличия Excel у пользователя:

Function IsXlsInstall: boolean; var CLSID: TCLSID; begin Result:= (CLSIDFromProgID("Excel.Application", CLSID) = S_OK); end;

Если Excel установлен, тогда выполним подключение к нему. Сделать это можно двумя способами: GetActiveOleObject — Получить ссылку на уже запущенный экземпляр Excel или CreateOleObject — Создать новый экземпляр Excel .
Если у нас стоит задача получать данные из запущенного Excel , тогда мы должны использовать только первый вариант, в остальных случаях пробуем подключиться и если не получается, то создаем.
Напишем 2 функции, для подключения XlsConnect и запуска нового XlsStart :
Добавим переменную FXlsApp с типом Variant , которая будет содержать в себе ссылку на объект Excel .

Private FXlsApp: variant; *** function XlsConnect: boolean; begin Result:= False; try FXlsApp:= GetActiveOleObject("Excel.Application"); Result:= True; except end; end; procedure XlsStart; begin FXlsApp:= CreateOleObject("Excel.Application"); end;

Теперь можно добавить кнопку, на клик которой подключимся к MS Excel используя написанные функции:

Procedure btnConnectClick(Sender: TObject); begin if not IsXlsInstall then raise Exception.Create("Приложение MS Excel не найдено на данном компьютере!"); if not XlsConnect then XlsStart; FXlsApp.Visible:= True; end;

По умолчанию окно Excel запускается в фоновом режиме. Строка FXlsApp.Visible:= True; делает фоновое окно Excel видимым.

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

Procedure XWorkbookAdd(const FilePath: string = ""); begin FXlsApp.WorkBooks.Add(FilePath); end;

Книга добавлена, теперь попробуем записать что-нибудь в неё.

FXlsApp.Cells := "Тестовая строка";

Где Row — индекс строки, и Col — индекс столбца, которые начинаются с единицы.

FXlsApp.Range["A1"] := "Ячейка А1";

Где Range — массив ячеек, а А1 — привычные для Excel координаты ячейки.
В качестве координат может быть указан диапазон. Например, код

FXlsApp.Range["A3:A10"] := 5;

заполнит цифрой 5 все ячейки с А3 по А10 , а код

FXlsApp.Range["A3:A10"].Interior.Color:= clMoneyGreen;

выделит тот же диапазон светло-зеленым цветом.
В обратную сторону, то есть для получения данных из Excel , работает так же. Строка

ShowMessage(FXlsApp.Cells);

Выведет сообщение с содержимым ячейки с координатами: Строка=5, Столбец=1.

После того, как мы произвели необходимые нам манипуляции с Excel , мы можем сохранить полученную книгу в файл следующей командой:

FXlsApp.ActiveWorkbook.SaveAs("C:\Test.xlsx");

Где ActiveWorkbook — текущая книга.
И закрыть приложение Excel командой:

FXlsApp.Quit;

Как понимаете этим возможности управления Excel из Delphi не ограничиваются. И есть один достаточной простой способ узнать, как выполнить необходимо действие с Excel из Delphi .
Называется оно — Макросы.

Представим, что нам необходимо выполнить объединение нескольких ячеек в одну и мы не знаем как это сделать. Но хотим узнать. Для этого выполняем следующие шаги:
1. Запускаем Excel и создаем пустую книгу.
2. Запускаем команду «Записать макрос», по умолчанию название макроса будет «Макрос1». (В разных версиях Excel данная команда находится в разных пунктах меню).
3. Выделяем некоторый диапазон ячеек и нажимаем кнопку «Объединить и поместить в центре».
4. Останавливаем запись макроса.
5. Вызываем список макросов и выбираем там свой записанный макрос.
6. Нажимаем кнопку «Изменить»
Запускается редактор Microsoft Visual Basic for Application в котором видим код проделанных действий:

Sub Макрос1() " " Макрос1 Макрос " With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With Selection.Merge End Sub

Давайте разберем по подробнее, что же такого он нам тут написал:
With Selection — Для выделенного диапазона ячеек настраиваем свойства:
HorizontalAlignment = xlCenter Горизонтальная ориентация = по центру.
VerticalAlignment = xlBottom — Вертикальная ориентация — по нижнему краю.
WrapText = False — Перенос текста по словам — выключен.
Orientation = 0 — Ориентация 0 градусов.
AddIndent = False — Использование автоматического отступа вкл/выкл.
IndentLevel = 0 — Уровень отступа в 0.
ShrinkToFit = False — Сжимать текст по размерам столбца вкл/выкл.
ReadingOrder = xlContext — Порядок чтения по контексту.
MergeCells = False — Объединенные ячейки вкл/выкл
End With — Конец секции работы с выделенным диапазоном.
Selection.Merge — Объединить выделенный диапазон.

Теперь попробуем объединить ячейки из Delphi:

Выделяем нужный нам диапазон.

FXlsApp.Selection.MergeCells:= True;

Объединяем ячейки задав свойство. Или при помощи метода:

FXlsApp.Selection.Merge;

Таким способом можно получать код практически для любых необходимых манипуляций.
А если какое-то свойство или метод вызывает вопросы, то можно воспользоваться справкой на MSDN.

Обратите внимание на особенность работы с массивами в VBA . Индексы в массивах в Delphi оборачиваются в квадратные скобки, в то время как в VBA они будут в круглых. И код в Delphi

FXlsApp.Range["B5:C8"].Select;

в VBA будет выглядеть как

Range("D5:H14").Select;

Ниже приведу небольшой FAQ по вопросу взаимодействия с Excel из Delphi

Как определить значения констант в Excel для использования в Delphi?

В редакторе VBA ставим точку остановки напротив интересующей константы. Нажимаем выполнить и когда выполнение остановиться, наводим на интересующую константу:

Как отключить выводы сообщений в Excel?

FXlsApp.DisplayAlerts:= False;

Как получить список книг из Excel?

For i:= 1 to FXlsApp.Workbooks.Count do ListBox1.Items.Add(FXlsApp.Workbooks.Item[i].Name);

Как отключить отображение сетки?

FXlsApp.ActiveWindow.DisplayGridlines:= False;

Как вывести текущий лист на предпросмотр печати?

FXlsApp.ActiveWindow.SelectedSheets.PrintPreview;

Как выделить жирным часть текста в ячейки?

Var Row: integer; // Индекс строки Col: integer; // Индекс ячейки TextSelStart: integer; // Начиная с символа TextSelLength: integer; // Кол-во выделенных символов begin FXlsApp.Cells.Characters(TextSelStart, TextSelLength).Font.Bold:= True; end;

Как выполнить автоподбор высоты строки для склеенной ячейки?

Var merge_area: variant; cell_width, cells_width, i: integer begin // Сохраняем диапазон склеенных ячеек в переменную merge_area:= FXlsApp.Range["D5"].MergeArea; // Сохраняем ширину ячейки, для которой будем подбирать высоту cell_width:= FXlsApp.Range["D5"].ColumnWidth; cells_width:= 0; for i:= 1 to merge_area.Columns.Count do // Получаем общую ширину всех столбцов склеенного диапазона cells_width:= cells_width + merge_area.Columns[i].ColumnWidth; // Разъединяем ячейки merge_area.UnMerge; // Устанавливаем ширину интересуемой ячейки равной общей ширине FXlsApp.Range["D5"].ColumnWidth:= cells_width; // Вызываем стандартный метод автоподбора высоты строки FXlsApp.Rows.EntireRow.AutoFit; // Возвращаем исходную ширину интересуемой ячейки FXlsApp.Range["D5"].ColumnWidth:= cell_width; // Склеиваем обратно диапазон merge_area.Merge; end;

Как получить используемый диапазон ячеек?

Result:= exApp.ActiveSheet.UsedRange;

Как получить букву столбца по индексу?

Uses Math; *** function ColIdxToStr(const Col: integer): string const CharsCount: integer = 26; Offset: integer = 64; var Rank: byte; Col, Tmp: integer; begin Result:= ""; while Col > 0 do begin Rank:= 0; Tmp:= Col; while Tmp > CharsCount do begin Tmp:= Ceil(Tmp / CharsCount - 1); Inc(Rank); end; Result:= Result + Chr(Tmp + Offset); Col:= Col - Trunc(Power(CharsCount,Rank)) * Tmp; end; end;



Загрузка...