powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Импорт файла Эксэль в PB/Помогите,Очень прошу!!!!
6 сообщений из 6, страница 1 из 1
Импорт файла Эксэль в PB/Помогите,Очень прошу!!!!
    #35197517
Andr___!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята,я на форуме нашёл вот такой отрывок кода ,и как я понимаю он для решения моей задачи подходит...Но в силу того ,что я в PB ещё очень зелёный(но задача от начальства поступила именно мне),то очень прошу

может кто-то привести пример кода похожего на этот что-бы импортировать простейший лист Экселя,и указать какие окна,dw или может быть какие-нибудь функции мне нужно создать в билдере что бы это всё работало...
Заранее спасибо!!


i_rc = GetFileOpenName('Select File', s_fname1, s_fname2, 'XLS', 'Excel Files (*.XLS),*.XLS')

i_file_num = FileOpen (s_fname1, StreamMode!, Write!, LockReadWrite!)

ole_book = CREATE oleobject

IF NOT IsValid(ole_book) THEN
MessageBox(This.Title, 'Create fail.', Exclamation!)
DESTROY ole_book
RETURN
END IF

i_rc = ole_book.ConnectToNewObject('excel.application')

a_any = ole_book.Application.DisplayAlerts = FALSE

a_any = ole_book.Application.WorkBooks.Open(s_fname1)

// это на случай если у тебя больше чем один воркщит
l_worksheet_knt = ole_book.Worksheets.Count

IF l_worksheet_knt > 1 THEN
FOR l_idx = 1 TO l_worksheet_knt
s_work_sheet_name[l_idx] = ole_book.Worksheets(l_idx).Name
l_work_sheet_idx[l_idx] = l_idx
NEXT

i_str_pass.s[] = s_work_sheet_name[]
i_str_pass.d[] = l_work_sheet_idx[]

message.fnv_set_str_pass(i_str_pass)

// w_parm_import_sheets = Просто построй окошко куда передаш аррэи и даш юзверю возможность выбрать нужный воркщит ...
open(w_parm_import_sheets)

i_str_pass = Message.fnv_get_str_pass()
Message.fnv_clear_str_pass()

CHOOSE CASE i_str_pass.s_action
CASE 'ok'
l_worksheet_knt = i_str_pass.d[1]

CASE ELSE
ole_sheet.DisconnectObject()
ole_book.Application.Quit
ole_book.DisconnectObject()

IF IsValid(ole_sheet) THEN
DESTROY ole_sheet
END IF

IF IsValid(ole_book) THEN
DESTROY ole_book
END IF

close(this)
RETURN
END CHOOSE
END IF

ole_sheet = ole_book.ActiveWorkBook.WorkSheets(l_worksheet_knt)

ole_book.Workbooks(1).Worksheets(l_worksheet_knt).select

ole_book.ActiveCell.CurrentRegion.Select()
ole_book.Selection.Copy()

l_row = dw_твоё_куда_надо_затянуть.ImportClipBoard(2)

ClipBoard('')

ole_sheet.DisconnectObject()
ole_book.Application.Quit
ole_book.DisconnectObject()

IF IsValid(ole_sheet) THEN
DESTROY ole_sheet
END IF

IF IsValid(ole_book) THEN
DESTROY ole_book
END IF
...
Рейтинг: 0 / 0
Импорт файла Эксэль в PB/Помогите,Очень прошу!!!!
    #35197769
Импорт файла Эксэль в PB:

делаешь окно, в него вставляешь multiline edit и command button
на кнопке в событии clicked пишешь примерно следующее (обьяви переменные):

Код: 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.
if GetFileOpenName('Select File', s_fname1, s_fname2, 'XLS', 'Excel Files (*.XLS),*.XLS')= 1  then
    ole_book = CREATE oleobject

    ole_book.ConnectToNewObject('excel.application')
    ole_book.Application.DisplayAlerts = FALSE
    ole_book.Application.WorkBooks.Open(s_fname1)

    ole_book.ActiveWorkBook.Worksheets( 1 ).select

    ole_book.ActiveWorkbook.Sheets( 1 ).Select()
    ole_book.ActiveWorkbook.Sheets( 1 ).Cells.Select()
    ole_book.Application.Selection.Copy()


    mle_1.text=''
    mle_1.paste()
    clipboard('')

    IF IsValid(ole_book) THEN
        ole_book.Application.Quit
        ole_book.DisconnectObject()
        DESTROY ole_book
    END IF

end if
...
Рейтинг: 0 / 0
Импорт файла Эксэль в PB/Помогите,Очень прошу!!!!
    #35197990
Andr___!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да,спасибо...
Но лист Экселя не показывается в этом mle...
Хотя,видно что что-то в него загрузилось...
...
Рейтинг: 0 / 0
Импорт файла Эксэль в PB/Помогите,Очень прошу!!!!
    #35198105
#@$^!!! значит учись ставить задачи и задавать вопросы.
сам привел пример с Copy Paste

че те надо сформулируй!
...
Рейтинг: 0 / 0
Импорт файла Эксэль в PB/Помогите,Очень прошу!!!!
    #35198123
VanoR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значит делайте вместо
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
    ole_book.ActiveWorkbook.Sheets( 1 ).Select()
    ole_book.ActiveWorkbook.Sheets( 1 ).Cells.Select()
    ole_book.Application.Selection.Copy()


    mle_1.text=''
    mle_1.paste()
    clipboard('')

Код: plaintext
1.
2.
3.
4.
any la_value
long a_cell_x,a_cell_y
....

la_value =ole_book.ActiveWorkbook.Sheets( 1 ).cells(a_cell_x,a_cell_y).value

где a_cell_x и a_cell_y столбик и строка в экселе (ячейка)

и так много раз, и вставляйте la_value куда Вам надо.
...
Рейтинг: 0 / 0
Импорт файла Эксэль в PB/Помогите,Очень прошу!!!!
    #35198742
Andr___!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо ВСЕМ Огромное,вроде разобрался!!!!
Звыняйте за глупые вопросы,Ведь незаданые вопросы,хотьбы какими они не были
остаются НЕЗАДАННЫМИ!!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Импорт файла Эксэль в PB/Помогите,Очень прошу!!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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