Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
Komaryan
16 / 16 / 10
Регистрация: 23.03.2010
Сообщений: 101
Завершенные тесты: 1
1

Работа с несколькими листами книги Excel в Delphi

04.08.2011, 09:33. Просмотров 2929. Ответов 2
Метки нет (Все метки)

Доброе утро, у меня вышла загвоздка когда потребовалось работать с несколькими листами Excel книги:
Есть 4 листа с абсолютно одинаковыми таблицами содержащие разные значения. Нужно суммировать значения 1-ого листа со 2-ым и т.д. и записать вычисления на 5 лист. Подскажите как можно это реализовать. Заранее благодарен!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2011, 09:33
Ответы с готовыми решениями:

Delphi и excel как работать с несколькими листами?
Как можно работать в Delphi с excel файлом, состоящим из нескольких листов?...

Работа с несколькими формами в Delphi 7
Здравствуйте! Задача состоит в том, что на первой форме находится несколько...

Stringgrid-excel, работа с несколькими Form
Добрый вечер) Есть вопросы: 1)Как изменить размер ячеек в Srtinggrid'e...

Delphi и exel: работа с несколькими документами
Доброго времени суток=) я разрабатываю программку, которая будет работать с...

Переключаться между листами Excel
Как можно через делфи переключаться между листами в открытом Ексель ? Т.е....

2
HighPredator
5686 / 2006 / 722
Регистрация: 10.12.2010
Сообщений: 5,768
Записей в блоге: 3
04.08.2011, 10:49 2
Лучший ответ Сообщение было отмечено Komaryan как решение

Решение

Не знаю как у вас, я всегда работал с экселем через оле. В таком варианте работа с листами и содержимым выглядит примерно так:
Delphi
1
2
3
var Excel:Variant;
{...}
Excel.ActiveWorkBook.Sheets[1].Cells.Item[2,1]:='anything';
где Sheets[index] лист в книге.
0
Mawrat
12830 / 5738 / 1700
Регистрация: 19.09.2009
Сообщений: 8,807
05.08.2011, 01:06 3
Цитата Сообщение от Komaryan Посмотреть сообщение
Есть 4 листа с абсолютно одинаковыми таблицами содержащие разные значения. Нужно суммировать значения 1-ого листа со 2-ым и т.д. и записать вычисления на 5 лист.
В этом случае удобно применять "специальную вставку" с операцией "сложение":
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
uses
  ComObj;
 
procedure TForm1.Button1Click(Sender: TObject);
const
  xlPasteValues = -4163;
  xlAdd = 2;
var
  exApp, exShs, exRng, exRngTrg : Variant;
  i : Integer;
  Od : TOpenDialog;
begin
  Od := OpenDialog1;
  if Od.InitialDir = '' then
    Od.InitialDir := ExtractFilePath( ParamStr(0) )
  ;
  if not Od.Execute then Exit;
  if not FileExists(Od.FileName) then begin
    MessageDlg(
      'Файл с заданным именем не найден. Действие отменено.'
      , mtWarning, [mbOK], 0
    );
    Exit;
  end;
 
  exApp := CreateOleObject('Excel.Application');
  exApp.Visible := True;
  //Ссылка на коллекцию листов рабочей книги.
  exShs := exApp.Workbooks.Open(Od.FileName).Worksheets;
  
  //Ссылка на целевой диапазон. - Предполагаем, что он находится
  //на последнем листе рабочей книги.
  i := exShs.Count;
  exRngTrg := exShs.Item[i].Range[
    exShs.Item[i].Cells[3, 3], exShs.Item[i].Cells[4, 4]
  ];
  //Перебор всех листов книги, кроме последнего. На каждом листе
  //выполняем копирование диапазона с данными, а затем выполняем
  //специальную вставку в целевой диапазон - вставка значений
  //с применением операции "сложение".
  for i := 1 to exShs.Count - 1 do begin
    exRng := exShs.Item[i].Range[
      exShs.Item[i].Cells[3, 3], exShs.Item[i].Cells[4, 4]
    ];
    exRng.Copy;
    exRngTrg.PasteSpecial(Paste:=xlPasteValues, Operation:=xlAdd);
  end;
end;
В этом примере диапазон принят таким: R3C3:R4C4.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.08.2011, 01:06

Работа с Excel в Delphi
Нужна программа для открытия любой книги Excel в Delphi а затем редактирование...

Работа с Excel в Delphi.
Еще раз здравствуйте, уже весь день ломаю голову над такой штукой: я работаю с...

Работа с Excel из Delphi
есть функция, которая считывает из TStringGrid в файл Excel и сохраняет....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru