Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 сен 2024, 01:51

Сохранение табличного документа в Word

Автор magnifico61, 31 мая 2018, 16:55

0 Пользователей и 1 гость просматривают эту тему.

Z.spb

Цитата: magnifico61 от 01 июн 2018, 11:40
Или как вариант вывести табличный документ в ворд через com.
Уверен, что в Word всё же надо?
Как не крути, но на своём опыте проверил, что 1С (8.2 по крайней мере) нормально сохраняет таб.документы только в 3 формата, один из которых "родной". Это mxl, xls и pdf. Во всех остальных начинаются искажения ширин\высот колонок и прочие визуальные глюки. Одна и та же печатная форма при сохранении в xls выглядит нормально, также как на экране, а в xlsx и docx таблица вытягивается как шея у жирафа, и такого видел немало - чем сложнее макет, тем больше искажений.
Я пытался в одной обработке программно сохранять ТабДок в Word, и это работало, хоть и выглядело некрасиво, но когда дал доступ пользователям, оказалось что при выполнении кода ТабДок.Сохранить(ПутьКФайлу,ТипФайлаТабличногоДокумента.DOCX) у многих вообще 1С вылетает! Именно в этот формат, с другими всё в порядке, я проверял.
Всё это у меня напрочь отбило желание с Word связываться.

Если всё ещё есть желание мучаться с DOCX можно попробовать сохранить в HTML и пересохранить через КОМ объект, что-то типа
//ТабДок - твой документ
//ПутьКФайлу - куда нужно сохранить
Врем = ПолучитьИмяВременногоФайла("html");
ТабДок.Сохранить(Врем,ТипФайлаТабличногоДокумента.HTML);
Word = Новый COMОбъект("Word.Application");
Word.Visible = 0;
Word.Documents.Add(Врем);
ТекДок = Word.ActiveDocument;
ТекДок.SaveAs(ПутьКФайлу,16); //16 - формат файла по умолчанию для текущей версии офиса
Word.Application.Quit();


Писал по памяти, могут быть ошибки.
Так у меня работало, но результат, опять же не радовал, т.к. сбивались ширины, "уезжали" картинки и т.д.

magnifico61

Да, так сохраняет, но таблица просто ужасно выглядит и значения не всегда в своих ячейках.

AIFrame

Если ты хочешь потратить пару месяцев своей жизни, сформируй docx через xml и собери в документ.
Как устроен docx узнать легко - бери любой документ, меняй расширение на .zip и смотри, что там внутри.
После создания всей структуры со всеми xml - зипуешь их меняешь расширение на docx.

magnifico61

А можно ли через Excel.Application скопировать содержимое в Word.Application?
Клиенту очень нужно иметь возможность сохранение в Word.
За подобный пример буду благодарен.

Dobrynya90

У меня получилось сделать максимум 50 колонок. Уменьшите размер шрифта. Для работы используйте лупу.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск