Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с шаблоном xls, Как можно реализовать ? 
V
    Опции темы
comtat
  Дата 26.1.2007, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: нет
Всего: 71



Возникла такая ситуация, что необходимо делать отчеты в xls
чтобы облегчить труд себе и пользователям возникла идея использовать шаблон.

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

Как такое можно реализовать ?? 


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
_hunter
Дата 26.1.2007, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 2
Всего: 98



копируеш шаблон в .xls и дальше как заполняеш его как написанно в шапке форума. после заполнения показываеш его. все...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
comtat
Дата 26.1.2007, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: нет
Всего: 71



Цитата(_hunter @  26.1.2007,  12:08 Найти цитируемый пост)
копируеш шаблон в .xls

как это реализовать ??

открыть новый xls пройтись по шаблону и копить все в xls, так?




--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
_hunter
Дата 26.1.2007, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 2
Всего: 98



Цитата(comtat @  26.1.2007,  12:12 Найти цитируемый пост)
как это реализовать ??

банальным CopyFile...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
comtat
Дата 26.1.2007, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: нет
Всего: 71



Ну тогда он будет сохранен, а сохранение хотелось бы оставить на совести юзера.
Ведь сохранение не всегда необходимо 


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
CatATonik
Дата 26.1.2007, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 12.1.2007
Где: Москва

Репутация: 2
Всего: 8



Сохраняшь свой файл как Счет.xlt, дальше Application.Workbooks.Add смотри в справке по VBA параметры, там есть "файл шаблона".
PM MAIL   Вверх
Данкинг
Дата 30.1.2007, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 5
Всего: 130



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


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
CatATonik
Дата 31.1.2007, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 12.1.2007
Где: Москва

Репутация: 2
Всего: 8



2comcat: Ну если ты про:
xla.Workbooks.Add('c:\delphi\excel\sample\demo.xlt');
то да. Только совсем не обязательно импортировать библиотеки типов и т.д. Вполне достаточно Variant'ов.

И не нужно, ничего каждый раз сохранять перзаписывать, копировать и т.д. При открытии на основе шаблона создается НОВАЯ книга на основе шаблона (т.е. его копия), сам шаблон как был так и остается.
PM MAIL   Вверх
comtat
Дата 31.1.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: нет
Всего: 71



Я сделал следующим образом
Код

      XLApp:= CreateOleObject('Excel.Application');
      Form7.Show();
      Application.ProcessMessages;
      pach := ExtractFileDir(Application.ExeName);
      if (AnsiStrLastChar(PChar(pach)) <> #92) then pach := pach+'\';

      XLApp.Workbooks.Open(pach+'Act.xlt'); 

      Sheet := XLApp.Workbooks[1].WorkSheets['Àêò']; 

      Sheet.Cells[1,1] := 'АКТ ВЫПОЛНЕНЫХ РАБОТ на ' + DateToStr(Date())+' г.';

      Sheet.Cells[9,4] := IntToStr(Form1.DataSource6.DataSet.RecordCount);
      Sheet.Cells[9,5] := '160-00';
      Sheet.Cells[9,6] := IntToStr(160*Form1.DataSource6.DataSet.RecordCount)+'-00';

      str := Sheet.Cells[11,1];
      Sheet.Cells[11,1] := str + NumToStr(160*Form1.DataSource6.DataSet.RecordCount, 0)+'__';
      Form7.Close();
      XLApp.Visible:=true;
 
CatATonik  спасибо за наводку на решение  smile 


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

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

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Delphi
  • Вопросы по SQL и вопросы по базам данных, не связанные с Delphi, задавать здесь

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Rrader, Girder.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.