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

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

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

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

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

>4-й.

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

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

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

+1/
хотя я ее купил еще за 22 бакса ;) сделали б чтоль для х-усср по 22 бакса, а для злых буржуев по 55 евро...
Хотя...
Стоящая весчь!
Но 22 бакса не так жалко ;)
...
Рейтинг: 0 / 0
30.10.2007, 15:32
    #34904982
Toxamor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт таблицы из txt файла в excel используя разделители
Мда, теперь начальство кинуло в другую сторону, необходимо все это переписать под опенофисовский 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
30.10.2007, 15:54
    #34905073
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт таблицы из txt файла в excel используя разделители
похоже соответствует массиву структур
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
30.10.2007, 16:05
    #34905112
Toxamor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт таблицы из txt файла в excel используя разделители
До этого я не додумался, а ведь правда похоже, а как задать тип данной структуры, в коде это вроде бы com.sun.star.beans.PropertyValue.
...
Рейтинг: 0 / 0
30.10.2007, 17:18
    #34905423
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт таблицы из txt файла в excel используя разделители
элементы - string или массив char
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
30.10.2007, 17:51
    #34905539
Toxamor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт таблицы из txt файла в excel используя разделители
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
30.10.2007, 17:52
    #34905548
Toxamor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт таблицы из txt файла в excel используя разделители
...
Рейтинг: 0 / 0
30.10.2007, 18:37
    #34905677
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт таблицы из txt файла в excel используя разделители
Лучше наверное не create, а ConnectToNewObject
и обращаться используя object
А что мешает сохранить в exel8!
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
30.10.2007, 20:13
    #34905827
Toxamor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт таблицы из txt файла в excel используя разделители
spas2001Лучше наверное не create, а ConnectToNewObject
и обращаться используя object
А что мешает сохранить в exel8!
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
ну функция коннект используется выше по скрипту, когда мы подключаем сервисменеджер. Может где то и ошибаюсь, просто в качестве вдохновления я использую документацию по openoffice.org basic, а там сказано то, что необходимо сначала подключить класс сервис, через коннект, а потом create. И уже затем открывать существующий документ. А насчет 8й версии эксель, пишем мы на 8 билдере, там в помощи его просто нет:( край, это 5.
...
Рейтинг: 0 / 0
31.10.2007, 16:50
    #34908283
Toxamor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт таблицы из txt файла в excel используя разделители
С кодировкой разобрался, сохраняю документ в формате 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
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Экспорт таблицы из txt файла в excel используя разделители / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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