|
Получить текст файла docx | ☑ | ||
---|---|---|---|---|
0
Kyrtizanka
30.07.13
✎
10:47
|
Добрый день, изначально задача состоит, создать письмо "Outlook.Application" , тело письма будет в следующем виде
Пример. Вася План -100 Продажи-50 ... потом идет талица с данными, которой я формирую в Скд. Я сделала следующим образом: первую часть, я сгенерировала- Вася План -100 Продажи-50 потом отраюотал макетСкд, данные я сохранила в файл с типом DOCX А потом у меня возникает проблема, я пытаюсь прочитать и скопировать текст из этого вордовского файла, но у меня иероглифы читаются Делаю так НовыйТекст.Прочитать(ПолноеИмяФайла); Ном = 0; КоличествоСтрок = НовыйТекст.КоличествоСтрок(); Пока Ном <= КоличествоСтрок Цикл Текст = Текст + Символы.ПС+ НовыйТекст.ПолучитьСтроку(ном); Ном = Ном+1; КонецЦикла ; можно было просто ПолучитьТекст(), но по описанию Описание: Получает строку текстового документа по номеру. а не для файла типа ворд и возвращает строку, а меня там таблица так же хранится Подскажите пожалуйста как вставить таблицу в тело письма |
|||
1
Arxangel06
30.07.13
✎
10:57
|
Вопрос номер раз: после обработки, но перед выводом в файл данные где хранятся? Источник данных СКД - Запрос? Если так, то почему бы не выгрузить результат запроса в таблицу значений, а таблицу в свою очередь - в табличный документ? или в HTML-текст, он вполне может табличку нарисовать. Вопрос номер два: а с каких пор DOCX-файл стал текстовым? он же XML, упакованный в ZIP... С таким чудом можно работать только через COM-объект, если быстро. Если быстро не обязательно - можно собрать свой распаковщик, потом парсер... полуить текст...
|
|||
2
Kyrtizanka
30.07.13
✎
11:05
|
а можно поподробнее, я не знаю как это сделать программно через
HTML-текст |
|||
3
Jaap Vduul
30.07.13
✎
11:06
|
Можно ИзвлечениеТекста использовать (обычно в виндах IFilter для docx имеется), но на выходе будет именно голый текст, без форматирования.
|
|||
4
Kyrtizanka
30.07.13
✎
11:08
|
когда делаешь
ФайлМесяц.Записать(ПолноеИмяФайла,ТипФайлаТабличногоДокумента.HTML); НовыйТекст = Новый ТекстовыйДокумент; НовыйТекст.Прочитать(ПолноеИмяФайла); Текст = Текст + Символы.ПС+ НовыйТекст.ПолучитьТекст(); там абра-кадабра получается |
|||
5
Kyrtizanka
30.07.13
✎
11:08
|
мне же табличка нужна
|
|||
6
Arxangel06
30.07.13
✎
11:16
|
(2) Просто:
Функция СформироватьХТМЛКопиюТаблицы(Таблица) ХТМЛТекст = "<table border=1><tr>"; Для Каждого Колонка Из Таблица.Колонки Цикл ХТМЛТекст = ХТМЛТекст + "<td><b>" + Колонка.Заголовок + "</b></td>"; КонецЦикла; ХТМЛТекст = ХТМЛТекст + "</tr>"; Для Каждого СтрокаТаблицы Из Таблица Цикл ХТМЛТекст = ХТМЛТекст + "<tr>"; Для Каждого Колонка Из Таблица.Колонки Цикл ХТМЛТекст = ХТМЛТекст + "<td>" + СтрокаТаблицы[Колонка.Имя] + "</td>"; КонецЦикла; ХТМЛТекст = ХТМЛТекст + "</tr>"; КонецЦикла; ХТМЛТекст = ХТМЛТекст + "</table>"; Возврат ХТМЛТекст; КонецФункции |
|||
7
Kyrtizanka
30.07.13
✎
11:22
|
Таблица - должна быть Таблицей значения как я понимаю
|
|||
8
Arxangel06
30.07.13
✎
11:29
|
(7) Это само собой.
|
|||
9
Kyrtizanka
30.07.13
✎
11:32
|
а у меня табличный документ с данными после отработки СКД
|
|||
10
Kyrtizanka
30.07.13
✎
11:43
|
нет больше подсказок((
|
|||
11
arsik
гуру
30.07.13
✎
12:28
|
(4) В браузере кодировку по умолчанию поменяй
|
|||
12
cw014
30.07.13
✎
12:29
|
> данные я сохранила в файл с типом DOCX
А разве это не Вордовский формат? |
|||
13
Kyrtizanka
30.07.13
✎
12:29
|
вордовский
|
|||
14
Kyrtizanka
30.07.13
✎
12:31
|
может я задачу как то непонятно описала. мне непринципиально в чем сохранять файл с таблицей, мне нужно понять как скопировать данные этого файла
|
|||
15
Kyrtizanka
30.07.13
✎
12:32
|
просто я думала сохранить в ворд, потом как то программно нажать что-то типа ctrl-A? ctrl-insert , а потом сделать ctrl-shift
|
|||
16
Масянька
30.07.13
✎
12:33
|
(15) Нужно к генерить письмо, текст которое заполняется программно?
|
|||
17
Kyrtizanka
30.07.13
✎
12:34
|
можно и через Эксель это сдлеать, именно не получается этот обмен через буфер, как это программно
|
|||
18
cw014
30.07.13
✎
12:35
|
(13) Тогда для его прочтения тебе нужен 'Новый COMОбъект("Word.Application)"'
|
|||
19
Kyrtizanka
30.07.13
✎
12:35
|
да, тело письма программно создается
|
|||
20
exwill
30.07.13
✎
12:37
|
(0) ИзвлечениеТекста() используй.
|
|||
21
Kyrtizanka
30.07.13
✎
12:41
|
ИзвлечениеТекста ты сам пробовал???
|
|||
22
Kyrtizanka
30.07.13
✎
12:51
|
мне то нужна таблица
Возвращаемое значение: Тип: Строка. |
|||
23
Arxangel06
30.07.13
✎
13:15
|
(9) Стоп-стоп-стоп. если у тебя табличный документ после обработки, то зачем его куда-то выгружать? И КАК вообще у тебя получается табличный документ??? Еще раз - источник данных СКД - запрос? Возьми этот запрос, засунь его в код, таблица= запрос.выполнить().Выгрузить(). Получишь таблицу значений. СКД эту же таблицу значений пихает в табличный документ. А я предлагаю вообще отказаться от СКД. Просто таблицу-результат запроса выгрузи в ХТМЛ, код я уже показывал. И вообще ВСЕ письмо целиком надо формировать в ХТМЛ. Тогда там и текст будет, и таблица.
|
|||
24
Arxangel06
30.07.13
✎
13:16
|
(15) Какой еще буфер обмена внутри одного приложения? У тебя есть объект - таблица, ну и выгрузи эту таблицу не в файл, а в текст письма, в чем проблема-то?
|
|||
25
Arxangel06
30.07.13
✎
13:19
|
А если уж так хочется извращений - сохраняешь свой макет СКД в эксель, потом идешь в MSDN и смотришь, как в Word.Application вставить табличку из файла XLS. Я не ошибся, именно в WORD, т.к. редактор писем - именно он и есть, Outlook сам письма не редактирует.
|
|||
26
Kyrtizanka
30.07.13
✎
13:35
|
потом идешь в MSDN и смотришь, как в Word.Application вставить табличку из файла XLS
в этом то и проблема |
|||
27
Kyrtizanka
30.07.13
✎
13:36
|
а пользуюсь СКД, т.к я использую 2 запроса и там талица в опред виде
|
|||
28
Kyrtizanka
30.07.13
✎
13:37
|
мне нужно из файл вытащить текст, который содержит таблицу и красиво этот текст вставить в тело письма
|
|||
29
Kyrtizanka
30.07.13
✎
13:39
|
короче так и не нашла я для себя какого-то решения оптимального, ведь можно это сщделать, неужели никто не делал
|
|||
30
Arxangel06
30.07.13
✎
14:06
|
(26) В чем проблема? в MSDN? http://msdn.microsoft.com/en-us/library/bb726436(v=office.12).aspx
Пожалуйте, как говорится. (27) Два запроса. Объединение? Отладчик отменили? В форме останавливаешься отладчиком и смотришь, какой запрос СКД отправляет в БД. Таблица определенного вида - ну так положи её в эксель. Существует способ вставить таблицу из файла, как раз этот способ и нужно найти в MSDN. |
|||
31
Arxangel06
30.07.13
✎
14:07
|
в дополнение к (30) только это уже несколько не одинэсинг, это VBA...
|
|||
32
Kyrtizanka
30.07.13
✎
14:09
|
Товарищи . Существует способ вставить таблицу из файла - вот я и пытаюсь узнать какой это способ
|
|||
33
Kyrtizanka
30.07.13
✎
14:11
|
короче все что-то знают, но ничего не определнного, видимо не далал никто
|
|||
34
Arxangel06
30.07.13
✎
14:18
|
(33) Т.е. это я должен пойти в MSDN, перерыть его весь, чтобы найти этот кусок VBA-кода? Ну золотце, это уже за гранью добра и зла.
P.S. Вообще такими извращениями ОЧЕНЬ редко страдают... у меня например все письма, рассылаемые из 1с, формируются в HTML-формате, и таблички туда прекрасно вставляются. Таки да, таблички плоские, без группировок и прочей мишуры. Но если вы хотите вставлять в письма полноценные отчеты, то может быть все-таки вставлять их не в текст, а приложением к тексту? |
|||
35
Kyrtizanka
30.07.13
✎
14:22
|
спасибо за помощь, буду думать как извратиться, но меньшей кровью
|
|||
36
Arxangel06
30.07.13
✎
14:29
|
(35) и почему меня теперь совесть гложет?
|
|||
37
Kyrtizanka
30.07.13
✎
14:33
|
))) ну не знаю
|
|||
38
Arxangel06
30.07.13
✎
14:34
|
я вот не помню, здесь разрешена отсылка на внешние ресурсы, или я сейчас бан схлопочу?
|
|||
39
Arxangel06
30.07.13
✎
14:36
|
стучись в аську, будем отдельно разгребать.
|
|||
40
Kyrtizanka
30.07.13
✎
14:37
|
хорошо
|
|||
41
Arxangel06
30.07.13
✎
14:49
|
(40) я вот не пойму, кому из нас это надо? ;)
|
|||
42
Kyrtizanka
30.07.13
✎
15:08
|
нам ася на работе запрещена я могу только из дома
|
|||
43
Kyrtizanka
30.07.13
✎
15:13
|
могу по почте только на работе
|
|||
44
Arxangel06
30.07.13
✎
15:21
|
вот только почта скрыта...
|
|||
45
Kyrtizanka
30.07.13
✎
15:22
|
почему же то, все открыто,временно)
|
|||
46
Arxangel06
30.07.13
✎
15:23
|
вот так бы сразу :)
|
|||
47
Arxangel06
30.07.13
✎
15:29
|
Хватит, или еще подкинуть? ;)
|
|||
48
Kyrtizanka
30.07.13
✎
15:36
|
обязательно подкинуть
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |