Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / считать значение с Excel / 2 сообщений из 2, страница 1 из 1
25.02.2010, 14:58
    #36488097
Sed0Y
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
считать значение с Excel
Добрый день.

У меня есть документ Ексель, в нем какие-то значения к примеру

Код: plaintext
1.
2.
3.
4.
5.
6.
    А             В
 1  ------пусто-------
 2  Тарелки      20 
 3  кирьпичь     2000 
 4  цемент        5 
 5  ------пусто-------
 6  ------пусто-------

этот документ постоянно редактируется в бухгалтерии, а мне нужно получать данные с него, к себе на форму, то как с Делфи мне считать дынные с этого документа что бы небыло ситуации закрытия документа или какой-то ошибки.... я делаю это так:
Код: plaintext
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.
.....
TYPE
     XLApp: TExcelApplication;
.....
var
  WorkBk: _WorkBook;
  WorkSheet: _WorkSheet;
  K, R, X, Y: Integer;
  sec, min, hour: Integer;
  IIndex: OleVariant;
  RangeMatrix: Variant;
  NomFich: WideString;
begin
  NomFich := 'C:\123.xls';
  IIndex :=  1 ;
  XLApp.Connect; 
  XLApp.WorkBooks.Open(NomFich, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
  EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,  0 );
  WorkBk := XLApp.WorkBooks.Item[IIndex];
  WorkSheet := WorkBk.WorkSheets.Get_Item( 1 ) as _WorkSheet;
  WorkSheet.Cells.SpecialCells(xlCellTypeLastCell,EmptyParam).Activate;
  X := XLApp.ActiveCell.Row;
  Y := XLApp.ActiveCell.Column;
  StringGrid.ColCount := Y;
  RangeMatrix := XLApp.Range['A1', XLApp.Cells.Item[X,Y]].Value2;
  XLApp.Quit;
  K :=  1 ;
  repeat
    for R :=  1  to Y do
      StringGrid.Cells[(R -  1 ),(K -  1 )] := RangeMatrix[K,R];
    Inc(K, 1 );
    StringGrid.RowCount := K +  1 ;
  until
    K > X;
  RangeMatrix := Unassigned;


XLApp.Connect; // ЕСЛИ В ДОКУМЕНТЕ СДЕЛАЛИ ИЗМЕНЕНИЕ НО НЕ СОХРАНИЛИ ТО НА ЭТОМ МЕСТЕ ПРОИСХОДИТ ОШИБКА - ТО КАК СЧИТАТЬ ДАННЫЕ БЕЗ СОХРАНЕНИЕ, ТО ЕСТЬ ЧТО БЫ СЧИТАЛО ТО ЧТО ЕСТЬ НА ЛИСТЕ НЕ СОХРАНЯЯ ЕГО?

XLApp.Quit; // В ТАКОМ СЛУЧАЕ, ЕСЛИ ДОКУМЕНТ ОТКРЫТ, ТО ОНО ЕГО ЗАКРЫВАЕТ А ЕСЛИ ЭТО УБРАТЬ И ДОКУМЕНТ БУДЕТ ЗАКРЫТ, ТО ПОСЛЕ ЗАКРЫТИЯ ПРОГРАММЫ БУДЕТ В ПРОЦЕССАХ ВИСЕТЬ ПРОЦЕСС ЕКСЕЛЯ
...
Рейтинг: 0 / 0
27.02.2010, 00:14
    #36491318
IguMEN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
считать значение с Excel
А что по этому поводу говорит такая опция МС Офиса как "Автосохранение"? Включи его. И пусть даже файл остается открытый у юзера. Открываешь его только на чтение, получаешь необходимые данные и уничтожаешь свой рид-онли объект.
____________________________________
Public Morozov
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / считать значение с Excel / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]