Страница 1 из 1
Форматированный текст перенести в excel
Добавлено: 12 Май 2025, 18:39
gopstop2007
Помогите кто знает или уже решил данный вопрос, смотрел по форуму ответа не нашел, если есть, укажите, буду благодарен.
Нужно, чтобы клиент сам набрал текст в одном поле файла (нужно форматированным только это поле), в одной строке размер и формат текста (обычный, жирный, курсив) может быть разный.
После чего данный текст с этого поля вывести в ячейку Excel.
Как или с помощью чего можно вывести (перенести) форматированный текст из clarion в Excel.
Форматированный текст перенести в excel
Добавлено: 13 Май 2025, 12:14
morkovin
gopstop2007 писал(а): 12 Май 2025, 18:39
Нужно, чтобы клиент сам набрал текст в одном поле файла (нужно форматированным только это поле), в одной строке размер и формат текста (обычный, жирный, курсив) может быть разный.
Если использовать поле типа RichEditField, форматирование переносится в MSWord и далее из MSWord в Excel. Напрямую (минуя Ворд) форматирование не переносится - только текст. Надо разбираться, похоже без макросов не обойтись
Форматированный текст перенести в excel
Добавлено: 13 Май 2025, 19:40
RaFaeL
libxlsxwriter умеет писать форматированный текст в Excel. Но синтаксис отличен от RTF. Если напишите прокладку между форматами, которая будет форматировать одно в другое, то все возможно
Форматированный текст перенести в excel
Добавлено: 14 Май 2025, 11:27
morkovin
RaFaeL писал(а): 13 Май 2025, 19:40
libxlsxwriter умеет писать форматированный текст в Excel. Но синтаксис отличен от RTF. Если напишите прокладку между форматами, которая будет форматировать одно в другое, то все возможно
Может проще воспользоваться
https://www.win2pdf.com/doc/command-lin ... -docx.html. И далее эту строку передать в ячейку Excel через проверенный SoftMasters?
Форматированный текст перенести в excel
Добавлено: 15 Май 2025, 11:10
gopstop2007
morkovin писал(а): 14 Май 2025, 11:27
RaFaeL писал(а): 13 Май 2025, 19:40
libxlsxwriter умеет писать форматированный текст в Excel. Но синтаксис отличен от RTF. Если напишите прокладку между форматами, которая будет форматировать одно в другое, то все возможно
Может проще воспользоваться
https://www.win2pdf.com/doc/command-lin ... -docx.html. И далее эту строку передать в ячейку Excel через проверенный SoftMasters?
Спасибо. Пробовал, используя MSWord, текст форматирует только слова целиком, если используется в слове несколько шрифтов, например: (
QWERTY) не форматируется, еще если есть перенос строки при последующем переносе в Excel, эта строка переносится на следующую ячейку.
Форматированный текст перенести в excel
Добавлено: 15 Май 2025, 11:12
gopstop2007
RaFaeL писал(а): 13 Май 2025, 19:40
libxlsxwriter умеет писать форматированный текст в Excel. Но синтаксис отличен от RTF. Если напишите прокладку между форматами, которая будет форматировать одно в другое, то все возможно
Мне нужно используя шаблон в Excel, заполнить его данными
Форматированный текст перенести в excel
Добавлено: 15 Май 2025, 13:36
kreator
gopstop2007 писал(а): 15 Май 2025, 11:12
RaFaeL писал(а): 13 Май 2025, 19:40
libxlsxwriter умеет писать форматированный текст в Excel. Но синтаксис отличен от RTF. Если напишите прокладку между форматами, которая будет форматировать одно в другое, то все возможно
Мне нужно используя шаблон в Excel, заполнить его данными
OLE не годится?
С другой стороны вопрос - зачем шаблон, если форматирование ячеек всё равно зависит от пользователя?
Форматированный текст перенести в excel
Добавлено: 15 Май 2025, 18:22
gopstop2007
kreator писал(а): 15 Май 2025, 13:36
gopstop2007 писал(а): 15 Май 2025, 11:12
RaFaeL писал(а): 13 Май 2025, 19:40
libxlsxwriter умеет писать форматированный текст в Excel. Но синтаксис отличен от RTF. Если напишите прокладку между форматами, которая будет форматировать одно в другое, то все возможно
Мне нужно используя шаблон в Excel, заполнить его данными
OLE не годится?
С другой стороны вопрос - зачем шаблон, если форматирование ячеек всё равно зависит от пользователя?
Одно поле в котором копируются например характеристики товаров:
Характеристики
Модель 9048
Размер - 220 235 см.
Вес - 2200 гр.
Плотность -480 гр./м 2
Тип ткани - микрофибра
Упаковка - сумка с ручками
Производитель - Китай
Форматированный текст перенести в excel
Добавлено: 15 Май 2025, 21:44
kreator
Понятно. И всё же. OLE устраивает? Не знаете как отформатировать поле через OLE? Принцип такой. Кусок текста (с такого символа по такой) делается жирным (курсивом и т.д.). Посмотреть точнее - создать макрос. Могу у себя в анналах посмотреть, точно делал что-то подобное.
Форматированный текст перенести в excel
Добавлено: 15 Май 2025, 22:02
gopstop2007
kreator писал(а): 15 Май 2025, 21:44
Понятно. И всё же. OLE устраивает? Не знаете как отформатировать поле через OLE? Принцип такой. Кусок текста (с такого символа по такой) делается жирным (курсивом и т.д.). Посмотреть точнее - создать макрос. Могу у себя в анналах посмотреть, точно делал что-то подобное.
Наверное да, надо посмотреть на результат. Огромное спасибо. )
Форматированный текст перенести в excel
Добавлено: 16 Май 2025, 21:58
kreator
Типа такого:
Код: Выделить всё
LOC:OLE{'ActiveChart.ChartTitle.Select'}
LOC:TempString = 'Статистика по категориям несоответствий' & '<13>Подразделение: ' & clip(LOC:Department3Name) & '<13>Категория: ' & clip(LOC:CategoriesQueue.LOC:CQCategoryName)
LOC:OLE{'ActiveChart.ChartTitle.Text'} = LOC:TempString
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters.Text'} = LOC:TempString
LOC:OLE{'Selection.Format.TextFrame2.TextRange.ParagraphFormat.TextDirection'} = 1 ! msoTextDirectionLeftToRight
LOC:OLE{'Selection.Format.TextFrame2.TextRange.ParagraphFormat.Alignment'} = 0 ! msoAlignLeft
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters(41, 14).Font.Size'} = 12
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters(41, 14).Font.Bold'} = 0
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters(56, ' & len(clip(LOC:Department3Name)) & ').Font.Size'} = 14
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters(' & (56 + len(clip(LOC:Department3Name)) + 1) & ', 10).Font.Size'} = 12
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters(' & (56 + len(clip(LOC:Department3Name)) + 1) & ', 10).Font.Bold'} = 0
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters(' & (56 + len(clip(LOC:Department3Name)) + 12) & ', ' & len(clip(LOC:CategoriesQueue.LOC:CQCategoryName)) & ').Font.Size'} = 14
Это заголовок диаграммы. Просто текст в ячейке, наверно, не найду. Давно OLE не используется.
Форматированный текст перенести в excel
Добавлено: 17 Май 2025, 11:43
gopstop2007
kreator писал(а): 16 Май 2025, 21:58
Типа такого:
Код: Выделить всё
LOC:OLE{'ActiveChart.ChartTitle.Select'}
LOC:TempString = 'Статистика по категориям несоответствий' & '<13>Подразделение: ' & clip(LOC:Department3Name) & '<13>Категория: ' & clip(LOC:CategoriesQueue.LOC:CQCategoryName)
LOC:OLE{'ActiveChart.ChartTitle.Text'} = LOC:TempString
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters.Text'} = LOC:TempString
LOC:OLE{'Selection.Format.TextFrame2.TextRange.ParagraphFormat.TextDirection'} = 1 ! msoTextDirectionLeftToRight
LOC:OLE{'Selection.Format.TextFrame2.TextRange.ParagraphFormat.Alignment'} = 0 ! msoAlignLeft
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters(41, 14).Font.Size'} = 12
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters(41, 14).Font.Bold'} = 0
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters(56, ' & len(clip(LOC:Department3Name)) & ').Font.Size'} = 14
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters(' & (56 + len(clip(LOC:Department3Name)) + 1) & ', 10).Font.Size'} = 12
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters(' & (56 + len(clip(LOC:Department3Name)) + 1) & ', 10).Font.Bold'} = 0
LOC:OLE{'Selection.Format.TextFrame2.TextRange.Characters(' & (56 + len(clip(LOC:Department3Name)) + 12) & ', ' & len(clip(LOC:CategoriesQueue.LOC:CQCategoryName)) & ').Font.Size'} = 14
Это заголовок диаграммы. Просто текст в ячейке, наверно, не найду. Давно OLE не используется.
Попробую, спасибо.