Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl: Получить текст из TextBox Excel файла / 5 сообщений из 5, страница 1 из 1
09.09.2014, 19:11
    #38742134
stavelot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl: Получить текст из TextBox Excel файла
Есть Excel файл, в котором в одном из листов есть форма TextBox с названием TextBox1, в которой есть некоторый текст, его и нужно получить.
Пробую получить с помощью Perl, но не знаю как обратится к самой форме TextBox.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 use strict;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
$Win32::OLE::Warn = 3; # die on errors...
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
|| Win32::OLE->new('Excel.Application', 'Quit'); # get already active Excel
# application or open new
my $Book = $Excel->Workbooks->Open("25.xls"); # open Excel file
my $Sheet = $Book->Worksheets('Test1'); # select worksheet number 1
my $array = $Sheet->Range("[color=red]TextBox1[/color]")->{'Value'}; # get the contents
$Book->Close;
foreach my $ref_array (@$array) { # loop through the array
# referenced by $array
foreach my $scalar (@$ref_array) {
print "$scalar\t";
}
print "\n";
...
Рейтинг: 0 / 0
09.09.2014, 19:44
    #38742161
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl: Получить текст из TextBox Excel файла
Если мой хрустальный шар не обманывает, то тебе надо читать коллекцию Shapes.
Что-то в духе $sheet->Shapes("TextBox1")->{"Caption"};
...
Рейтинг: 0 / 0
09.09.2014, 20:08
    #38742180
stavelot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl: Получить текст из TextBox Excel файла
White OwlЕсли мой хрустальный шар не обманывает, то тебе надо читать коллекцию Shapes.
Что-то в духе $sheet->Shapes("TextBox1")->{"Caption"};

Проверил, ошибка:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
use strict;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
$Win32::OLE::Warn = 3; # die on errors...
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
|| Win32::OLE->new('Excel.Application', 'Quit'); # get already active Excel
# application or open new
my $Book = $Excel->Workbooks->Open("25.xls"); # open Excel file
my $Sheet = $Book->Worksheets('Test1'); # select worksheet number 1
my $array = $Sheet->Shapes("TextBox1")->{"Caption"}; ; # get the contents
$Book->Close;
foreach my $ref_array (@$array) { # loop through the array
# referenced by $array
foreach my $scalar (@$ref_array) {
print "$scalar\t";
}
print "\n";
...
Рейтинг: 0 / 0
09.09.2014, 20:09
    #38742181
stavelot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl: Получить текст из TextBox Excel файла
[quot stavelot]White OwlЕсли мой хрустальный шар не обманывает, то тебе надо читать коллекцию Shapes.
Что-то в духе $sheet->Shapes("TextBox1")->{"Caption"};

Проверил, ошибка:

Win32::OLE(0.1709) error 0x8002000b: "═хтхЁэ√щ "
in METHOD/PROPERTYGET "Worksheets"
...
Рейтинг: 0 / 0
10.09.2014, 23:19
    #38743647
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Perl: Получить текст из TextBox Excel файла
Ну может и ошибка.... Я помню что стандартные текст-боксы считаются в Экселе за shapes, а конкретный синтаксис не помню.
Но у тебя может быть и не Shapes, а OleObjects. В Экселе два вида встроенных объектов может быть.

В общем, делай:
Запускаешь Excel.
Нажимаешь Alt+F11
Нажимаешь F2
Читаешь до первичного просветления.
Открываешь свою книгу.
Открываешь Developer ribbon
Запускаешь Record Macro
Делаешь что нужно.
Останавливаешь запись.
Нажимаешь Alt+F11
А потом долго и упорно бегаешь по окнам и читаешь до полного просветления.

Еще можешь купить себе учебник по VBA. Там очень много разных подводных камней.
Только не путай VBA с VB, VBS и VB.Net это все разные языки. Тебе нужен именно VBA.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Perl: Получить текст из TextBox Excel файла / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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