powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Экспорт таблицы из txt файла в excel используя разделители
25 сообщений из 29, страница 1 из 2
Экспорт таблицы из txt файла в excel используя разделители
    #34894983
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как это все можно осуществить? Необходимо это все, чтобы передать содержание datawindow в excel. Сохраняю все строки отчета через saveasascii, открывая через Excel напрямую ручками отчет отлично выглядит. Хочу сделать тоже самое, только используя PB, создаю ole объект, соединяю его с excel.application, а вот дальше ступор, используя функцию Open для этого объекта получаю первый столбец, в каждой ячейке которого записаны строчки текстового файла. Возможно ли открыть этот файл учитывая разделители? Куда копать?
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34895024
md_zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
копай в сторону Copy/Paste
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34895092
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если не трудно, можно по подробнее? Копировать данные из datawindow, подцепить Ole объект к экселю и вставить данные в него? Но при такой процедуре вставляются все данные, а так как прога досталась по наследству и тогда не задумывались еще над вопросом передачи отчетов в эксель, то есть много левых столбцов, которые потом удалять через скрипт. И кажется при использовании функции Paste не передаются названии столбцов? Или я ошибаюсь?
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34895125
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Toxamor wrote:

> Куда копать?

В сторону остальных параметров функции Open() ;).
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34895157
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а какой параметр функции open передает экселю что открываем текстовый файл с разделителем ,?:)
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34895171
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Toxamor wrote:

> а какой параметр функции open передает экселю что открываем текстовый
> файл с разделителем ,?:)

4-й.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34895209
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>> а какой параметр функции open передает экселю что открываем текстовый
>> файл с разделителем ,?:)

>4-й.

sourcestorage? Какое значение тогда нужно?
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34895224
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть функция будет ob.Application.WorkBooks.Opentext(filename,...,...,",")?
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34895230
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В смысле не opentext, a open
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34895256
KOLCHOZ_POSTEVENT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Data window в Excel?
Так есть же функция Saveas.Приходилось её пользовать по жизни.
Чтоб сохраняемый файл нормально открылся екселем,поставить тип файла Excel5! или text!,а так как имя файла вы сами задаёте,то не стесняйтесь,ставьте расширение .xls.
Мне приходлось так забивать биржевый отчёт из dw в excel,давно было,но работало.
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34895302
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Так есть же функция Saveas.Приходилось её пользовать по жизни.
>Чтоб сохраняемый файл нормально открылся екселем,поставить тип файла Excel5! или text!,а так >как имя файла вы сами задаёте,то не стесняйтесь,ставьте расширение .xls.
>Мне приходлось так забивать биржевый отчёт из dw в excel,давно было,но работало.[/quot]
Использование данной функции не устраивает тем, что передаются все данные, но юез названий столбцов и итогов по группам, как и названия самих групп, то есть приходится все это потом приводить в соответствующий вид, а если сохранять в формате ascii, то все эти данные есть, остается только выгрузить их в Excel
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34895314
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Toxamor wrote:

> sourcestorage? Какое значение тогда нужно?

Посмотри в Help-е по VBA...
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34895558
KOLCHOZ_POSTEVENT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон,названия столбцов эта saveas выдаёт,есть там 3-й параметр,его надо поставить на true.
Более того,если вы вскроете сорс data window и поменяете значение параметра колонки data window ,который зовётся dbname,на что-то типа "Я ушёл в кино",то в екселе в заголовке появится "Я ушёл в кино".
У экстернал datawindow это свойство доступно из пейнтера.
Что касается вычислемых полей-ваша правда-не покажет,где бы они не были в строке или в трейлере.
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34896115
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Матка боска! Как же мучаются люди у которых нету 55€ на покупку dw2xls!
Аж слезы на глаза наворачиваются от жалости.
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34898884
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну я сильно не мучался, просто было самому интересно, да и начальник сказал: пусть программа выгружает данные в эксель, а то что я могу написать служебку чтобы мне купили библиотеку dw2xls за 55 евро, не сказал да и думаю не скажет:), политика не та. Да и идеальное совпадение не требуется... Спасибо всем кто откликнулся, пошел через экспорт в ascii, затем покопался в хелпе по VBA, конкретно по функции, нарыл то что нужно и теперь все замечательно работает:)
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34899521
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗоринАндрейМатка боска! Как же мучаются люди у которых нету 55€ на покупку dw2xls!
Аж слезы на глаза наворачиваются от жалости.

+1/
хотя я ее купил еще за 22 бакса ;) сделали б чтоль для х-усср по 22 бакса, а для злых буржуев по 55 евро...
Хотя...
Стоящая весчь!
Но 22 бакса не так жалко ;)
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34904982
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мда, теперь начальство кинуло в другую сторону, необходимо все это переписать под опенофисовский Calc. Начал потихоньку разбираться, но столкнулся вот с чем:

o1 = CREATE oleobject
li_n = o1.ConnectToNewObject("com.sun.star.ServiceManager")
IF li_n <> 0 THEN
MessageBox('Ошибка соединения с OpenOffice!', 'Код = ' + String(li_n),StopSign!)
DESTROY o1
Return
END IF


ole_document=create oleobject
ole_desctop=CREATE oleobject
dispatcher=create oleobject
ole_desctop = o1.CreateInstance('com.sun.star.frame.Desktop')
ole_document = ole_desctop.LoadComponentFromURL('file:///' + ls_path, "_blank", 0,b_array)

Все работает нормально, но проблема в кодировке, данные попросту отображаются не в windows_1251. Порылся в документации и нашел то, что за фильтр открытия отвечает четвертый параметр, который массив. Но никак не соображу, как его задать. Также нашел код, который, как я понял, открывает текстовый файл с разделителями, о чем я спрашивал раньше.

Dim Doc As Object
Dim FileProperties(0) As New com.sun.star.beans.PropertyValue
Dim Url As String
Url = "file:///C:/csv.doc"
FileProperties(0).Name = "FilterName"
FileProperties(0).Value ="scalc: Text - txt - csv (StarOffice Calc)"
Doc = StarDesktop.loadComponentFromURL(Url, "_blank", 0, FileProperties())

Но язык - Basic. Пишу на билдере недавно и никак не могу понять, как мне задать этот четвертый параметр? который в примере FileProperties?
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34905073
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
похоже соответствует массиву структур
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34905112
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
До этого я не додумался, а ведь правда похоже, а как задать тип данной структуры, в коде это вроде бы com.sun.star.beans.PropertyValue.
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34905423
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
элементы - string или массив char
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34905539
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spas2001элементы - string или массив char
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца

Ну то что элементы string я понял, но все равно при вызове loadcomponentfromurl при следующим коде:

dw_2.SaveAs(ls_path,csv!,false)
s_oofilter lstr_filtr
lstr_filtr.Name = "FilterName"
lstr_filtr.Value ="scalc: Text - txt - csv (StarOffice Calc)"

ole_document=create oleobject
ole_desctop=CREATE oleobject

ole_desctop = o1.CreateInstance('com.sun.star.frame.Desktop')
ole_document = ole_desctop.LoadComponentFromURL('file:///' + ls_path, "_blank", 0,lstr_filtr)



Вылетает ошибка (вложена). Вообще мне кажется что все проблемы в кодировке из-за типа сохраняемого файла - excel5!, потому что, когда открываешь файл экселем, сохраняешь в формате ексель 2000, а потом открываешь документ в OOo, то все отображается нормально.
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34905548
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34905677
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше наверное не create, а ConnectToNewObject
и обращаться используя object
А что мешает сохранить в exel8!
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34905827
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spas2001Лучше наверное не create, а ConnectToNewObject
и обращаться используя object
А что мешает сохранить в exel8!
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
ну функция коннект используется выше по скрипту, когда мы подключаем сервисменеджер. Может где то и ошибаюсь, просто в качестве вдохновления я использую документацию по openoffice.org basic, а там сказано то, что необходимо сначала подключить класс сервис, через коннект, а потом create. И уже затем открывать существующий документ. А насчет 8й версии эксель, пишем мы на 8 билдере, там в помощи его просто нет:( край, это 5.
...
Рейтинг: 0 / 0
Экспорт таблицы из txt файла в excel используя разделители
    #34908283
Toxamor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С кодировкой разобрался, сохраняю документ в формате CSV, далее подключаю все нужные сервисы OOo, и открываю документ, сохраненный ранее. При этом задаю значения массива, которые указывают на то, что при открытии нужно использовать фильтр для csv.
Код: 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.
36.
37.
38.
39.
40.
41.
integer li_par
string ls_url
string ls_temp[]

oleobject l_objservicemanager
oleobject l_objdesctop
oleobject l_objdocument
oleobject l_objcorereflection
oleobject l_objPropertyClass
oleobject l_objproperty[]

l_objservicemanager=create oleobject


li_par=l_objservicemanager.connecttonewobject("com.sun.star.ServiceManager")

l_objdesctop = l_objservicemanager.CreateInstance('com.sun.star.frame.Desktop')

l_objCoreReflection=l_objservicemanager.createInstance("com.sun.star.reflection.CoreReflection")

l_objPropertyClass=l_objCoreReflection.forName("com.sun.star.beans.PropertyValue")

l_objPropertyClass.createObject(REF l_objProperty[ 1 ])

l_objPropertyClass.createObject(REF l_objProperty[ 2 ])

l_objProperty[ 1 ].name = "FilterName"

l_objProperty[ 1 ].Value = "Text - txt - csv (StarCalc)"

l_objProperty[ 2 ].name = "FilterOptions"

l_objProperty[ 2 ].Value = "44"


ls_url='file:///C:/1.csv'

l_objdocument=l_objdesctop.loadcomponentfromurl(ls_url,"_blank", 0 ,l_objProperty)


destroy l_objservicemanager


Все отлично работает, но есть одно но: по умолчанию ООо открывает документ используя в качестве разделителя запятую, что неуместно, так как есть запятые и в ячейках. Может кто нибудь поделиться советом, какой параметр FilterOptions крутить, чтобы явно задать этот разделитель, или кинет ссылочку на документы. http://community.i-rs.ru/ уже просмотрел, вроде бы там нет примеров с конкретным разделителем. Буду благодарен:)
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Экспорт таблицы из txt файла в excel используя разделители
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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