Работа в excel в delphi - Учим Эксель

Печать из Delphi в Excel по шаблону

Прилагается начальный код компонента ExcelView и процедуры экспорта и печати по шаблону в Excel для Delphi 2010/XE/XE2. Доступна полная версия с примерами использования.

Для чего это необходимо?

Excel в современном кабинете практически стал эталоном для ввода и анализа данных, сотворения итоговых отчетов и презентаций. Сначала, благодаря наглядности подхода и простоте освоения. Сделать «табличку» с подходящими автоматическими расчетами, добавить промежные итоги по нескольким аспектам и выстроить по сиим итогам радиальную диаграмму — все это можно создать без специальной подготовки, просто и непосредственно.

Потому полностью закономерно, что Excel обширно употребляется и для разработки разных печатных форм. Хотя по своим способностям он уступает спец генераторам отчетов, уже фактически для всех типовых документов можно отыскать готовые Excel-шаблоны, от коммерческого предложения до товарно-транспортной затратной по форме 1-Т (http://blanker.ru/doc/38)

Что и как экспортировать?

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

В шаблоне могут употребляться в качестве переменных:

  • все published характеристики формы-владельца
  • все составляющие, принадлежащие форме-владельцу, и их published характеристики
  • все наборы данных (наследники TDataSet) обрабатываются особым образом, в шаблон подставляются значения их полей

Готовые решения на базе шаблонов

Составляющие для вывода в Excel достаточно просто отыскать в вебе, к примеру:

  • TMS Flexcel Studio (http://www.tmssoftware.com/site/flexcel.asp) — $125
  • ARExcelReport (http://www.vector-ski.com/reports/arexcelreport_index.htm) — бесплатный для некоммечерского использования, стоимость исходников — $125
  • Don Excel Report (http://www.don-soft.com.ar/DonExcelReport/products.php) — $75
  • AfalinaSoft XL Report (http://www.afalinasoft.com/download-xl-report.html) — «будет open source через месяц-два», — написано в 2003 году. Как досадно бы это не звучало.
  • FlexCelReport (http://www.freewebs.com/flexcel/) — бесплатный, в исходниках. Для Delphi 5/6/7. Веб-сайт в истинное время недоступен. При пересборке пакетов под Delphi 2010-XE2 нужно заносить суровые конфигурации.

Do It Yourself

Библиотеки компонент всем неплохи (не считая цены, естественно), но даже наличие начальных текстов не постоянно выручает от вероятных проблем. Неувязка в том, что кода становится очень много. К примеру, один из наилучших (на мой взор) — FlexCelReport — это 916 Кб в 174 начальных файлах. Переносить этот проект на современные версии Delphi становится проблематично.

В таковых вариантах остается вариант написания процедуры либо компонента без помощи других. В качестве стартовой точки для ознакомления можно советовать http://www.webdelphi.ru/2009/08/rabota-s-excel-v-delphi-osnovy-osnov/, http://www.codenet.ru/progr/delphi/stat/export-to-excel.php и т.д.

Интересно почитать:  Как в excel включить режим разработчика

Таблицы и поля в шаблонах

У всех компонентостроителей — свои правила записи переменных в шаблонах. В FlexCelReport — это именованные спектры с 2-мя подчеркиваниями «__MAIN__» и переменные в ячейках вида ##DataSetName##FieldName, в ARExcelReport — <#table:DataSetName> . <#table> и т.д.

Мы желаем еще проще. Лишь FieldName и ничего излишнего.

А где задается DataSet?

В первой колонке. Отведем всю колонку под служебную информацию, благо в Экселе их (колонок) и так наиболее чем довольно. При выводе будем эту колонку скрывать.

Очередное допущение — если мы желаем вывести все записи из DataSet-а в виде таблицы, ставим перед его именованием звездочку (*tblOrders). Без звездочки будут выводиться лишь значения полей текущей записи.

шаблон ExcelView

Характеристики и составляющие в шаблонах

Для вывода в шаблоне published характеристики текущей формы запишем в ячейке имя этого характеристики в квадратных скобках: [Caption], [Tag]. Характеристики компонент формы записываются с именованием компонента через точку: [Memo1.Lines]. Поддерживаются (пока) характеристики последующих типов: Integer, Int64, String, Double, Boolean, TStrings.

Реализация

Весь код находится в файле ExcelView.pas (7 Кб). Компонент TExcelView имеет единственное published свойство TemplateFileName — это название файла шаблона. Способ Show открывает Excel и запускает процесс экспорта.

Можно и не устанавливать компонент в гамму, а сходу выполнить функцию

Направьте внимание на параметр Owner! Это тот компонент (форма, датамодуль), чьи характеристики, составляющие, датасеты и будут экспортироваться в Excel.

Экспорт dbgrid в excel delphi

Как из DBGrid перенести данные в имеющийся Excel файл

  • размер шрифта уменьшить размер шрифта прирастить размер шрифта
  • Печать

Как из DBGrid перенести данные в имеющийся Excel файл

Вы тут

В прошлой статье (Читаем файл Excel (xls) в Delphi) был рассмотрен метод чтения данных из xls файла и его импорт в Delphi. Сейчас перейдем к сохранению, т.е. к экспорту данных из Delphi. Экспорт, как и импорт, будет осуществляться через посредника, т.е. Excel. Потому для работы приложения будет нужно установленная копия MS Excel 2003-2010 (выше не тестировал).

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

Интересно почитать:  Как перевести с пдф в эксель

Зрительные изготовления для нашего примера готовы. Перебегаем к написанию кода.

Как и в случае чтения xls нам пригодится библиотека ComObj. Добавьте ее в uses. Ниже приведен листинг процедуры экспорта, добавьте его опосля главного слова implementation.

procedure Xls_Save(XLSFile:string; Grid:TStringGrid);
const
xlExcel9795 = $0000002B;
xlExcel8 = 56;
var
ExlApp, Sheet: OLEVariant;
i, j, r, c:integer;

begin
//создаем объект Excel
ExlApp := CreateOleObject(‘Excel.Application’);

//делаем окно Excel невидимым
ExlApp.Visible := false;

//создаем книжку для экспорта
ExlApp.Workbooks.Add;

//создаем объект Sheet(страничка) и указываем номер листа (1)
//в книжке, в который будем производить экспорт
Sheet := ExlApp.Workbooks[1].WorkSheets[1];

//задаем имя листу
Sheet.name:=’Данные_из_Delphi’;

//считываем кол-во столбцов и строк в StringGrid
r:=Grid.RowCount;
c:=Grid.ColCount;

//считываем значение из каждой ячейки и отправляем в таблицу Excel
for j:= 1 to r do
for i:= 1 to c do
sheet.cells[j,i]:=Grid.Cells[i-1,j-1];

//отключаем все предупреждения Excel
ExlApp.DisplayAlerts := False;

//обработка исключения при сохраннении файла
try
//формат xls 97-2003 если установлен 2003 Excel
ExlApp.Workbooks[1].saveas(XLSFile, xlExcel9795);
showmessage(‘Файл сохранил 2003-ий кабинет’);
except
//формат xls 97-2003 если установлен 2007-2010 Excel
ExlApp.Workbooks[1].saveas(XLSFile, xlExcel8);
showmessage(‘Файл сохранил 2007 либо 2010-ый кабинет’);
end;

//закрываем приложение Excel
ExlApp.Quit;

//очищаем выделенную память
ExlApp := Unassigned;
Sheet := Unassigned;

Delphi , Технологии , OLE Automation MSOffice

Статья Экспортировать TDBGrid в Excel без использования OLE раздела Технологии OLE Automation MSOffice быть может полезна для разрабов на Delphi и FreePascal.

Комменты и вопросцы

:: 2011-09-09 07:38:11 :: re:Экспортировать TDBGrid в Excel без использования OLE

Что вот это такое – "ADOX_TLB"? У меня оно подчеркивается..
Это что за классы:
_Catalog;
_Table;
_Column; ?
Они у меня тоже не работают.

Пишу в Delphi2010

:: 2011-10-12 21:20:29 :: re:Экспортировать TDBGrid в Excel без использования OLE

Если пристально прочесть 1-ый комментарий, то вы увидите:
До этого всего нужно импортировать библиотеку типов ADOX, которая будет употребляться, чтоб сделать файл Excel и ее внутренней структуры: в среде Delphi.

Материалы статей собраны из открытых источников, обладатель веб-сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени создателя. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с обладателем веб-сайта.

Программирование на Delphi. Часть 1. Установка Delphi Community Edition (бесплатная версия)

Компания Embarcadero в 2018 году представила Delphi Community Edition — бесплатную версию знаменитой среды разработки Delphi. Применять её могут студенты, стартаперы, маленькие команды, некоммерческие организации. Условия использования: ​лицензия на внедрение продолжает действовать до того времени, пока прибыль физического лица либо компании от приложений Delphi не достигнет 5 000 баксов США (Соединённые Штаты Америки — государство в Северной Америке), либо штат команды разрабов не превзойдет 5 человек.

Интересно почитать:  Как в excel убрать лишние пробелы

Мы ставим Delphi в учебных целях, потому ее можно применять безвозмездно. А опосля заработка первых 5 тыщ баксов её можно приобрести: цены начинаются от 98 999 руб. (практически $1600).

При помощи Delphi Community Edition можно разрабатывать мультиплатформенные приложения на Windows, Android, iOS и macOS. В данной для нас статье мы пошагово пройдём процесс установки среды и напишем тестовое приложение под Windows. Delphi постоянно был инвентарем для резвого старта в разработке под Windows на языке Pascal, это мы сейчас и проверим.

Примерное время установки: около 40-60 минут.

1. Скачка бесплатной версии Delphi

Для того, чтоб получить доступ к Delphi Community Edition, пройдите по данной для нас ссылке https://www.embarcadero.com/ru/products/delphi/starter/free-download

Скачать бесплатно Delphi Community Edition - инструкция

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

На почту для вас придёт письмо с ключом — его лучше сохранить. Опосля отправки формы начнётся процесс загрузки. Если загрузка не начнётся, ссылка будет также в письме. Письмо для вас нужно — если оно не пришло, инспектируйте мусор. Если совершенно не пришло, регайтесь поновой на иной ящик. Я регился два раза на различные email — один на доменную почту, 2-ой на Gmail. Оба раза всё было ок. Ах так смотрится письмо:

Письмо от Embarcadero с бесплатным ключом для Delphi

2. Установка Delphi Community Edition

Установка Delphi

Установка Delphi - шаг 2

Ввод серийного номера при установке бесплатной версии Delphi Community Edition

Введите Serial number из письма в почте и нажмите Register.

Программка начнёт связываться с серверами Embarcadero и попробует зарегистрировать вашу копию. На одном компе у меня всё вышло одномоментно, на другом с третьей пробы. Судя по сообщениям, неувязка была с серверами Embarcadero. Если всё вышло, перебегайте к последующему разделу статьи. Если нет, попытайтесь создать последующее. На снимке экрана ниже кликните по ссылке «Trouble connection…»

Проблемы при установке Delphi

Скачать файл лицензии для Delphi при ошибке регистрации

3. Выбор платформ для установки

Выбор плафторм для установки в среде Delphi: Windows и Android

Установка Delphi

Установка завершена. Можно приступать к разработке

4. Первичная настройка среды разработки Delphi

Окно Delphi

1-ое окно при загрузке Delphi

Ссылка на основную публикацию
Adblock
detector