powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
17 сообщений из 17, страница 1 из 1
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35428875
switch_epam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток.
проблема в том, что в dwo есть поле ххх типа string. Если в это поле положить запись 'MAR01',
то при экспорте в excel, он (excel) понимает запись как дату и вместо 'MAR01' пишет '1-Mar'.
подскажите возможные варианты как это обойти?

вот мой код экспорта:
OleObject lole_Excel
OleObject lole_Sheet

if ll_ColumnsCount > 0 then

lole_Excel = CREATE OleObject
if lole_Excel.ConnectToNewObject( 'Excel.Application' ) < 0 then
MessageBox('DW export error','Unable to connect to Microsoft Excel')
Return
end if

dw_ism.SaveAs("",Clipboard!,true)
lole_Excel.Workbooks.Add
lole_Sheet = lole_Excel.Application.ActiveWorkbook.WorkSheets[1]
lole_Sheet.PasteSpecial('Text', FALSE, FALSE )
lole_Sheet.Rows(1).Select()
lole_Excel.Selection.Font.Bold = TRUE
lole_Sheet.Columns.Autofit()
lole_Excel.Application.Visible = true
lole_Excel.DisconnectObject()
DESTROY lole_Excel
end if

З.Ы. Если через OLe Эт осделать не возможно , то подскажите как это сделать используя библиотеку dw2exl
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35428953
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте к Вашему значению добавлять одинчную кавычку в начало строки:
" ' MAR01" или ' ~' MAR01' ели Вам обязательно нужно писать в коде в одинарных кавычках...
------------
С уважением, IKAR

IkarHomeCenter ........ Детский Дворик ........ ГавГав.Инфо
Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35428986
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте после сохранения задать формат "text" нужному полю.
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35428990
switch_epam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не знаю подоёдёт ли такое решение. т.к. у меня дво тянет из базы около 5 тыс записей.
из них 7-мь с 'MAR01'.
Придётся во все те модули, которые отвечают за заполнении базы добавлять эту ковычку + модифаить все существующие.
Но спасибо за подсказку.. попвтаюсь попробовать
Вот сейчас сижу и думаю как бы сообщить екселю о том что поле стринг.
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35429006
switch_epam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RiskaПопробуйте после сохранения задать формат "text" нужному полю.
Riska , а с помощбю какой ф-ии это можно сделать. Используя Ole объекты.
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35429153
+/-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
+/-
Гость
>> Попробуйте после сохранения задать формат "text" нужному полю.
только лучше не полю а сразу всей колонке, и не после сохранения а перед.

>> Riska, а с помощбю какой ф-ии это можно сделать. Используя Ole объекты.
записываете макрос и смотрите команды
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35429251
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
switch_epam RiskaПопробуйте после сохранения задать формат "text" нужному полю.
Riska , а с помощбю какой ф-ии это можно сделать. Используя Ole объекты.
Код: plaintext
1.
2.
OLEObject 	lole_range
lole_range = aole_sheet.Range("A1:A7")
lole_range.NumberFormat = ???
??? - не помню точно что должно быть. Может быть TRUE, а может быть и сам формат, типа '###.00'.
Короче, копать в Excel в сторону NumberFormat
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35429303
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska...
??? - не помню точно что должно быть. Может быть TRUE, а может быть и сам формат, типа '###.00'.
Короче, копать в Excel в сторону NumberFormat
для текстового - ??? = "@"
------------
С уважением, IKAR

IkarHomeCenter ........ Детский Дворик ........ ГавГав.Инфо
Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35429317
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
??? - имелось введу вообще что-то. Я не помню, что именно. Т.е. может быть 'YES', может быть 'TRUE', а может быть и сам формат, типа '###.00'.
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35429472
switch_epam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Riska , а как мне обозначить весь столбец? range выделяет прямоугольник, а я не знаю кол-ва строк.
Как я понимаю мне необходимо доватить вот это:
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35429476
switch_epam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lole_Excel.activeworkbook.activesheet.XXXX.NumberFormat = '@'
вместо хххх надо подставить столбец. он у меня 2-ой по счёту
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35429499
switch_epam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предполагаю что Range("A,A")
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35429502
+/-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
+/-
Гость
Columns(2).NumberFormat = "@"
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35429609
switch_epam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем после добавления вот такого кода:

OLEObject lole_range
lole_range = lole_Excel.Range("B:B")
lole_range.NumberFormat = '@'

я получил на выходе численное значение даты в виде int. Получается, что excel сначала получил запись 'MAR01', потом преобразовал её в '1-Mar', и только потом отработал мой NumberFormat и на выходе я получил int. -((

Подскажите в какое место у меня в коде (см. 1-ый пост) мне нужно вставить этот код [я вставлял после строчки "lole_Excel.Selection.Font.Bold = TRUE"]?
Или нужно искать другое решение проблеммы?
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35429634
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
switch_epamПодскажите в какое место у меня в коде (см. 1-ый пост) мне нужно вставить этот код [я вставлял после строчки "lole_Excel.Selection.Font.Bold = TRUE"]?
Или нужно искать другое решение проблеммы?
Перед PasteSpecial, вестимо.
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35429644
switch_epam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем БОЛЬШОЕ СПАСИБО.
Сегодня я первый раз поработал с Ole объектами.

вот экспорта в excel с принудительным типом string для 2-го столбца:

if ll_ColumnsCount > 0 then

lole_Excel = CREATE OleObject
if lole_Excel.ConnectToNewObject( 'Excel.Application' ) < 0 then
MessageBox('DW export error','Unable to connect to Microsoft Excel')
Return
end if
dw_ism.SaveAs("",Clipboard!,true)
lole_Excel.Workbooks.Add

OLEObject lole_range
lole_range = lole_Excel.Range("B:B")
lole_range.NumberFormat = '@'

lole_Sheet = lole_Excel.Application.ActiveWorkbook.WorkSheets[1]
lole_Sheet.PasteSpecial('Text', FALSE, FALSE )
lole_Sheet.Rows(1).Select()
lole_Excel.Selection.Font.Bold = TRUE
lole_Sheet.Columns.Autofit()

lole_Excel.Application.Visible = true
lole_Excel.DisconnectObject()
DESTROY lole_Excel
end if
...
Рейтинг: 0 / 0
Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
    #35431179
alexis glinski
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EPAM взялись за PB-проекты :)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Excel при экспорте конвертирует строку в дату. Как избавиться от этого?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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