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

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

Код: 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
считать значение с Excel
    #36491318
Фотография IguMEN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что по этому поводу говорит такая опция МС Офиса как "Автосохранение"? Включи его. И пусть даже файл остается открытый у юзера. Открываешь его только на чтение, получаешь необходимые данные и уничтожаешь свой рид-онли объект.
____________________________________
Public Morozov
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / считать значение с Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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