С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 03.10.2013
Сообщений: 26

Добавление на несколько листов в эксель

29.10.2013, 11:01. Показов 1525. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Допустим есть таблица

Код Имя
1 йцу
2 кен
2 фыв

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

не догоняю как это осуществить

Работаю с Delphi и SQL Server 2008

Модули AdoDataSet, AdoConnection, DataSourse

Добавлено через 54 минуты
Код добавления такой:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
procedure TOtchet.Button5Click(Sender: TObject);
var
  XL, Sheet: Variant;
  i,s: integer;
 
  N,R: TDateTime;
  Y, M, D, Y2, M2, D2, Y3, M3, D3: Word;
 
begin
  VPR_DM.vpr_main2.Filtered:= False;
  vpr_dm.VPR_main2.Filter := 'vpr_data>='+DateToStr(DateTimePicker3. Date)+' and vpr_data<='+DateToStr(DateTimePicker4.Date);
  vpr_dm.VPR_main2.Filtered:=true;
  if MessageDlg('Действительно добавить данные в Excel?'+#13#10+
  'Подтвердите',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
 Begin
    XL := CreateOleObject('Excel.Application');
    statusbar1.Visible:=true ;
 
   try
    if XL.Workbooks.Count = 0 then begin
     XL.SheetsInNewWorkbook := 1;
     xl.workbooks.open(ExtractFilePath(ParamStr(0))+'для МДЦ (ВПР) по районам Общее за отрывок времени');
   end else
    XL.ActiveWorkbook.WorkSheets.Add;
    s:=0;
    XL.Visible := true;
 
    XL.WorkSheets[1].columns['A:A'].Select;
    XL.WorkSheets[1].Columns['A:A'].Font.Name:='Avant Greek';
    XL.WorkSheets[1].Columns['A:A'].Font.Size:=11;
    XL.WorkSheets[1].Columns['B:B'].Select;
    XL.WorkSheets[1].Columns['B:B'].Font.Name:='BankGothic Lt BT';
    XL.WorkSheets[1].Columns['B:B'].NumberFormat:='0';
 
   try
    i := 5;
    vpr_dm.Vpr_main2.First;
 
    Xl.Range[xl.Cells[i, 3], xl.Cells[vpr_dm.Vpr_main2.RecordCount+4, vpr_dm.Vpr_main2.Fields.Count]].select;
    XL.Selection.Borders.LineStyle := 7;
    xl.Selection.Borders.Weight := 2;
    XL.Range[XL.Cells[i, 3], XL.Cells[i, 3]].Select;
 
   while not vpr_dm.Vpr_main2.EOF do begin
      Sheet := xl.WorkSheets[s+1];
      Sheet.Name := 'Общий за определенный период';
 
      n:=now;
      Decodedate(n, y, m, d);
      r:=vpr_dm.Vpr_main2.FieldByName('data_r').AsDateTime;
      Decodedate(r, y2, m2, d2);
 
Sheet.Cells[1, 3].value := 'Списочный состав пациентов за:' ;
Sheet.Cells[2, 3].value := 'С '+DateToStr(DateTimePicker3. Date)+' по '+DateToStr(DateTimePicker4.Date);
Sheet.Cells[i, 3].Value := vpr_dm.spr_lpu2.FieldByName('Name').AsString;//vpr_dm.Vpr_main2.FieldByName('kod_lpu').AsString;
Sheet.Cells[i, 4].Value := vpr_dm.Vpr_main2.FieldByName('fam').AsString;
Sheet.Cells[i, 5].Value := vpr_dm.Vpr_main2.FieldByName('im').AsString;
Sheet.Cells[i, 6].Value := vpr_dm.Vpr_main2.FieldByName('ot').AsString;
Sheet.Cells[i, 7].Value := vpr_dm.spr_pol2.FieldByName('Name').AsString;
Sheet.Cells[i, 8].Value := vpr_dm.Vpr_main2.FieldByName('data_r').AsString;
Sheet.Cells[i, 9].Value := vpr_dm.Vpr_main2.FieldByName('vpr_data').AsString;
Sheet.Cells[i, 10].Value := vpr_dm.Vpr_main2.FieldByName('vpr_ds_1').AsString;
Sheet.Cells[i, 11].Value := vpr_dm.Vpr_main2.FieldByName('vpr_ds_2').AsString;
Sheet.Cells[i, 12].Value := vpr_dm.Vpr_main2.FieldByName('vpr_ds_3').AsString;
Sheet.Cells[i, 13].Value := vpr_dm.Vpr_main2.FieldByName('vpr_ds_4').AsString;
if  (y-y2)+1 > 1 then  Sheet.Cells[i, 14].Value :='Больше 1 года' else Sheet.Cells[i, 14].Value :='Меньше 1 года';
Sheet.Cells[i, 15].Value := vpr_dm.Vpr_main2.FieldByName('adrd').AsString;
Sheet.Cells[i, 16].Value := vpr_dm.Vpr_main2.FieldByName('adrd_dom').AsString;
Sheet.Cells[i, 17].Value := vpr_dm.Vpr_main2.FieldByName('adrd_korp').AsString;
Sheet.Cells[i, 18].Value := vpr_dm.Vpr_main2.FieldByName('adrd_kv').AsString;
 
    i := i + 1;
 
    vpr_dm.Vpr_main2.Next;
  end;
  finally
   XL.WorkSheets[1].Columns['A:A'].Select;
   XL.WorkSheets[1].Columns['A:A'].Rows.AutoFit;
   XL.WorkSheets[1].Columns['A:A'].Columns.AutoFit;
   XL.WorkSheets[1].Columns['B:B'].Select;
   XL.WorkSheets[1].Columns['B:B'].Rows.AutoFit;
   XL.WorkSheets[1].Columns['B:B'].Columns.AutoFit;
 
  end;
    finally
    statusbar1.Visible:=false ;
    end;
  End;
    end;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.10.2013, 11:01
Ответы с готовыми решениями:

Добавление формы заполнения на несколько листов
Здравствуйте, скажите как изменить код, чтоб эта форма отображалась на 15 листах? Побывала вводить в Set sht =...

Эксель. Отображение скрытых листов
Как можно реалиовать отображение и скрытие листов в книге эксель? Например: Создана книга &quot;эксель1&quot;, она содержит в себе 10...

Сбор данных с разных листов эксель
Здравствуйте, подскажите пожалуйста как быть, в общем объясню на примере, есть несколько поставщиков, само собой у всех прайсы разные, но...

1
0 / 0 / 0
Регистрация: 03.10.2013
Сообщений: 26
05.11.2013, 17:42  [ТС]
Уже не надо ничего, сам все сделал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.11.2013, 17:42
Помогаю со студенческими работами здесь

Как узнать сколько листов в книге Эксель?
.-.-.

Переименование всех листов в книге Эксель по шаблону
Нужно переименовать все листы в книге Эксель, добавив к уже существующему названию, состоящему из 6 цифр, еще шесть нулей спереди. Можно ли...

Макрос на сохранение двух листов эксель в отдельные файлы mht
Здравствуйте, как сделать что бы эксель 2003 сохранял выбранные листы (Лист1 и Лист2) в отдельные файлы mht при нажатии Command Button? ...

Как создать VBA форму для вызова листов эксель
Друзья, нужна помощь. Есть файл эксель с несколькими листами. Хочу создать форму с кнопками, соотвествующими этим листам. Нужно, чтобы...

Получить список листов в эксель файле без его полной загрузки + 1 вопрос
Здравствуйте, сейчас использую такой код: Dim objExcelOld As New Excel.Application ComboOld.Text = &quot;Файл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru