Страница 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 не используется.
 
Попробую, спасибо.